Buscar

Introdução+e+Conceitos+Básicos (1)

Prévia do material em texto

*/28
 
Algoritmos e Programação
Algoritmos e Programação
Paulo Cesar Lopes 
Email: pcalgoritmos2@gmail.com
www.sites.google.com/site/pcalgoritmos
*
*/28
 
Algoritmos e Programação
Algoritmos e Programação
	Apresentações
	Apresentação da Disciplina - Contexto
	Ementa e Plano de Curso
	Considerações sobre a bibliografia
	Exercícios, Avaliações e Trabalhos Práticos
	Breve Avaliação e Revisão/Conceitos Básicos
	
Agenda
*
*/28
 
Algoritmos e Programação
Conteúdo da Disciplina
Comentários sobre a Disciplina
Algoritmos e Programação
Série: 1ª Série
C.H. Teórica: 40
C.H. Prática: 40
C.H. Outras: 
C.H. Total: 80
 
EMENTA
Conceitos fundamentais de programação: algoritmos, linguagem, compilador; Linguagem de programação; Estrutura de um programa; Tipos de dados; Operadores; Programação estruturada; Estruturas de condição; Laços de repetição; Vetores e matrizes; Caracteres/Strings e funções de manipulação; Tipos estruturados (registros). Aplicações em linguagem C. Estilos de programação estruturada.
*
*/28
 
Algoritmos e Programação
Conteúdo da Disciplina
Comentários sobre a Disciplina
Algoritmos e Programação
 CONTEÚDO PROGRAMÁTICO
1 CONCEITOS INICIAIS E FUNDAMENTAIS DE PROGRAMAÇÃO
1.1 Definição e Noção de algoritmos.
1.2 Formas de representação.
1.3 Tipos de dados, variáveis e constantes.
1.4 Instruções primitivas e operadores.
1.5 Estrutura de um Programa.
 
2 ESTRUTURAS DE DECISÃO
2.1. Desenvolvimento de Algoritmos: análise e resolução de problemas
2.2 Estrutura condicional simples.
2.3 Estrutura condicional composta.
2.4 Estrutura condicional com múltiplas possibilidades de escolha.
 
3 ESTRUTURAS DE REPETIÇÃO
3.1 Repetição controlada por variável.
3.2 Repetição condicional com teste no início.
3.3 Repetição condicional com teste no final.
 
*
*/28
 
Algoritmos e Programação
Conteúdo da Disciplina
Comentários sobre a Disciplina
Algoritmos e Programação
 CONTEÚDO PROGRAMÁTICO
 4 VETORES E MATRIZES
4.1. Conceitos de vetores
4.2. Declaração de vetores
4.3. Operações de Manipulação de vetores
4.4. Conceito de Matrizes
4.5. Declaração de Matrizes
4.6. Operações sobre Matrizes
 
5 CADEIAS DE CARACTERES e TIPOS ESTRUTURADOS
5.1 Conceitos iniciais em strings.
5.2 Operações básicas para manipulação de cadeias de caracteres.
5.3 TIPOS ESTRUTURADOS 
6 SUBALGORITMOS: FUNÇÕES E PROCEDIMENTOS - MODULARIZAÇÃO
6.1 Conceitos de Modularização e decomposição
6.2 Procedimentos.
6.3 Funções.
6.4 Parâmetros e passagem de parâmetros.
6.5 Variáveis locais e globais.
  
*
*/28
 
Algoritmos e Programação
Conteúdo da Disciplina
Comentários sobre a Disciplina
Algoritmos e Programação
 
Possíveis práticas de laboratório:
Aulas para confecção de programas em C.
 
 
*
*/28
 
Algoritmos e Programação
Plano de Curso
Discussão sobre o Plano de Curso
Algoritmos e Programação
 
CRONOGRAMA
	1	CONCEITOS INICIAIS E FUNDAMENTAIS DE PROGRAMAÇÃO
1.1 Definição e Noção de algoritmos.
1.2 Formas de representação.
1.3 Tipos de dados, variáveis e constantes.
	2	1.4 Instruções primitivas e operadores.
1.5 Estrutura de um Programa.
	3	2 ESTRUTURAS DE DECISÃO
2.1. Desenvolvimento de Algoritmos: análise e resolução de problemas
2.2 Estrutura condicional simples.
	4	2.3 Estrutura condicional composta.
2.4 Estrutura condicional com múltiplas possibilidades de escolha.
	5	3 ESTRUTURAS DE REPETIÇÃO
3.1 Repetição controlada por variável.
3.2 Repetição condicional com teste no início (Enquanto e para).
	6	3.3 Repetição condicional com teste no final (Repita).
	7	ESTRUTURAS DE DECISÃO e ESTRUTURAS DE REPETIÇÃO
Desenvolvimento de Algoritmos: análise e resolução de problemas
Estrutura condicionais e repetitivas. 
	8	Desenvolvendo programas utilizando estruturas condicionais e repetitivas.
	9	Avaliação Parcial
	10	4 VETORES E MATRIZES
4.1. Conceitos de vetores
4.2. Declaração de vetores
4.3. Operações de Manipulação de vetores
	11	Desenvolvendo programas utilizando VETORES
	12	4.4. Conceito de Matrizes
4.5. Declaração de Matrizes
4.6. Operações sobre Matrizes
	13	Desenvolvendo programas utilizando MATRIZES
	14	5 CADEIAS DE CARACTERES e TIPOS ESTRUTURADOS
5.1 Conceitos iniciais em strings.
5.2 Operações básicas para manipulação de cadeias de caracteres.
5.3 TIPOS ESTRUTURADOS
	15	6 SUBALGORITMOS: FUNÇÕES E PROCEDIMENTOS - MODULARIZAÇÃO
6.1 Conceitos de Modularização e decomposição
6.2 Procedimentos.
6.3 Funções.
	16	6.4 Parâmetros e passagem de parâmetros.
6.5 Variáveis locais e globais.
	17	7 ESTILO DE PROGRAMAÇÃO E OS MÉTODOS “TOP-DOWN” e “DOWN-UP”. 
7.1 Importância do estilo e a qualidade do programa.
7.2 Refinamentos e o método “Top-Down”.
7.3 Fases do processo de programação.
7.4 A programação como atividade humana.
	18	Prova Escrita Oficial
	19	Revisão e preparação para Exame Especial
	20	Prova Exame Especial
*
*/28
 
Algoritmos e Programação
Plano de Curso
Discussão sobre o Plano de Curso
Algoritmos e Programação
DISTRIBUIÇÃO DOS PONTOS:
SISTEMA DE AVALIAÇÃO
1° Avaliação - PESO 4,0
Atividades Avaliativas a Critério do Professor
Práticas: 2,00
Teóricas: 7,00
Outras: 1,00
Total: 10 
2° Avaliação - PESO 6,0
Atividades Prova Escrita Oficial
Práticas: 2,00
Teóricas: 7,00
Outras: 1,00
Total: 10
*
*/28
 
Algoritmos e Programação
CONCEITOS BÁSICOS:
Avaliação e definições.
Disciplina:
Algoritmos e Programação
Paulo Cesar Lopes
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
ALGORITMOS
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
ALGORITMOS... ???????????????
Etimologia
 A palavra algoritmo tem origem no sobrenome, Al-Khwarizmi, do matemático persa do século IX, Mohamed ben Musa, cujas obras foram traduzidas no ocidente cristão no século XII, tendo uma delas recebido o nome Algorithmi de numero indorum, sobre os algoritmos usando o sistema de numeração decimal (indiano). Outros autores, 
entretanto, defendem a origem da palavra em Al-goreten (raiz - conceito que se pode aplicar aos cálculos).
Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, 
cada uma das quais pode ser executada mecanicamente num período de tempo finito 
e com uma quantidade de esforço finita
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
ALGORITMOS X PROGRAMAS
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
ingredientes
 1 colher (sobremesa) de sementes de erva-doce
 1 colher (sobremesa) de fermento em pó
 1 xícara (chá) de óleo
 1 xícara (chá) de leite
 1 xícara (chá) de farinha de trigo
 2 xícaras (chá) de fubá
 2 xícaras (chá) de açúcar
 3 ovos
Preparo
Coloque no liquidificador os ovos, o açúcar, o fubá, a farinha de trigo, o leite e o óleo. 
Bata até obter uma mistura homogênea. Junte o fermento e as sementes de erva-doce 
e misture sem bater. Unte e enfarinhe uma fôrma com furo no meio e despeje a massa. 
Leve ao forno preaquecido em temperatura média (200ºC) até dourar, ou até que 
enfiando um palito no bolo ele saia seco. Desenforme o bolo ainda morno e, se 
preferir, salpique açúcar e canela antes servir.
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
ALGORITMOS X PROGRAMAS
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Algoritmo Textual Informal
	Modo de preparo:
	Bata a margarina, as gemas e o açúcar até ficar cremoso
	Junte o leite, o coco e a farinha e continue batendo
	Acrescente o fermento e, por último, as claras em neve
	Unte uma forma com manteiga e leve ao forno para assar
Quão cremoso?!?
De uma vez só?!?
Quanto tempo?!?
Quanto tempo?!?
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
ALGORITMOS X PROGRAMAS
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Algoritmo Textual Informal Refinado
	Modo de preparo:
	Bata a margarina, as gemas e o açúcar por 15 minutos
	Junte o leite, o coco e a farinha e continue batendo por mais15 minutos
	Acrescente 20 g de fermento e, por último, as claras em neve
	Unte uma forma com manteiga e leve ao forno para assar por 30 minutos
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
Exemplos e Representações dos ALGORITMOS
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Repetir 10 vezes os quatro passos abaixo:
Levantar e abaixar braço direito; 
Levantar e abaixar braço esquerdo; 
Levantar e abaixar perna esquerda; 
Levantar e abaixar perna direita. 
DESAFIO: Para mostrar outro exemplo de algoritmo considere o seguinte 
problema. Dispomos de duas vasilhas com capacidades de 9 e 4 litros 
respectivamente. As vasilhas não tem nenhum tipo de marcação, de modo 
que não é possível ter medidas como metade, um quarto ou um terço. 
Mostre uma seqüência de passos, que usando as vasilhas de 9 e 4 litros 
encha uma terceira vasilha de medida desconhecida, superior a nove litros,
com seis litros de água. Considere que você tem água sem limite. 
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
Representações dos ALGORITMOS
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Uma possível solução é: 
	Encha a vasilha de 9 litros;
	Usando a vasilha de 9 litros, encha a vasilha de 4 litros;
	Despeje o que sobrou na vasilha de 9 litros (5 litros) na terceira vasilha. 
Observe que falta um litro para completar os seis litros;
	Esvazie a vasilha de 4 litros;
	Torne a encher a vasilha de 9 litros;
	Usando a vasilha de 9 litros encha a vasilha de 4 litros;
	Esvazie a de 4 litros;
	Usando o que restou na vasilha de 9 litros (5 litros), encha novamente 
a vasilha de quatro litros;
	Despeje o que sobrou na vasilha de 9 litros (1 litro) na terceira vasilha, 
que agora tem 6 litros.
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Exemplos e Representações dos ALGORITMOS
Algoritmo Gráfico-Textual Informal 
Montagem
de um 
Aeromodelo.
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Exemplos e Representações dos ALGORITMOS
Algoritmo Gráfico-Textual Informal 
Trocar um pneu..
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Exemplos e Representações dos ALGORITMOS
Algoritmo Fluxograma
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
ALGORITMOS X PROGRAMAS
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Exemplos e Representações dos ALGORITMOS
Algoritmo "SomaDeDoisValores";
variável: P1,P2,P3: inteiro;
inicio 
Coloque a frase("Digite um numero") em P4;
Apresente a frase de P4
Leia o numero e coloque-o em P2;
Coloque a frase("Digite outro numero") em P5;
Apresente a frase de P5;
Leia o numero e coloque-o em P3; 
Some o numero de P2 com P3 e coloque em P1;
Apresente o conteúdo de P3;
fim.
Algoritmo Portugol
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Exemplos e Representações dos ALGORITMOS
Algoritmo "SomaDeDoisValores";
variável: SOMA-P1,A-P2,B-P3: inteiro;
inicio 
Escreva("Digite um numero");
Leia(A-P2);
escreva("digite outro numero");
leia(B-P3);
Soma ← A-P2 + B-P3;
escreva(SOMA-P3);
fim.
Algoritmo Portugol (Textual Formal)
*
*/28
 
Algoritmos e Programação
Avaliação e Revisão/Conceitos Básicos
Avaliação/Revisão/Conceitos Básicos 
Retorno
Algoritmos e Programação
Dois exemplos: 
X-Real-Time-Kernel, Free-RTOS
Máquina de von Newmann
SO “é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos, etc.), além de fornecer uma interface entre o computador e o usuário. É o primeiro programa que a máquina executa no momento em que é ligada (num processo chamado de bootstrapping) e, a partir de então, não deixa de funcionar até que o computador seja desligado. O sistema operacional reveza sua execução com a de outros programas, como se estivesse vigiando, controlando e orquestrando todo o processo computacional.! Wikipedia.
http://pt.wikipedia.org/wiki/Sistema_operativo#Classifica.C3.A7.C3.B5es
Exemplos de SO: http://pt.wikipedia.org/wiki/Sistema_operativo#Exemplos_de_sistemas_operacionais_ativos
“Um Sistema Operacional de Tempo Real (RTOS da sigla anglo-saxónica Real Time Operating System) é um sistema operacional/operativo destinado à execução de múltiplas tarefas onde o tempo de resposta a um evento (externo ou interno) é pré-definido; não importando, como é comum pensar-se, se a velocidade de resposta é elevada ou não. Esse tempo de resposta é chamado de prazo da tarefa e a perda de um prazo, isto é, o não cumprimento de uma tarefa dentro do prazo esperado, caracteriza uma falha do sistema. Outra característica dos sistemas de tempo real é a sua interação com o meio ao redor. Os STR tem que reagir, dentro de um prazo pré-definido, a um estímulo do meio. Por exemplo, em um hospital, o sistema que monitora os batimentos cardíacos de um paciente deve alarmar os médicos caso haja alteração nos batimentos. Outro aspecto importante dos STR é a previsibilidade. O sistema é considerado previsível quando podemos antecipar seu comportamento independentemente de falhas, sobrecargas e variações de hardware.” Wikipedia
*
*/28
 
Algoritmos e Programação
Avaliação e Revisão/Conceitos Básicos
Avaliação/Revisão/Conceitos Básicos 
Retorno
Algoritmos e Programação
SO “é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos, etc.), além de fornecer uma interface entre o computador e o usuário. É o primeiro programa que a máquina executa no momento em que é ligada (num processo chamado de bootstrapping) e, a partir de então, não deixa de funcionar até que o computador seja desligado. O sistema operacional reveza sua execução com a de outros programas, como se estivesse vigiando, controlando e orquestrando todo o processo computacional.! Wikipedia.
http://pt.wikipedia.org/wiki/Sistema_operativo#Classifica.C3.A7.C3.B5es
Exemplos de SO: http://pt.wikipedia.org/wiki/Sistema_operativo#Exemplos_de_sistemas_operacionais_ativos
“Um Sistema Operacional de Tempo Real (RTOS da sigla anglo-saxónica Real Time Operating System) é um sistema operacional/operativo destinado à execução de múltiplas tarefas onde o tempo de resposta a um evento (externo ou interno) é pré-definido; não importando, como é comum pensar-se, se a velocidade de resposta é elevada ou não. Esse tempo de resposta é chamado de prazo da tarefa e a perda de um prazo, isto é, o não cumprimento de uma tarefa dentro do prazo esperado, caracteriza uma falha do sistema. Outra característica dos sistemas de tempo real é a sua interação com o meio ao redor. Os STR tem que reagir, dentro de um prazo pré-definido, a um estímulo do meio. Por exemplo, em um hospital, o sistema que monitora os batimentos cardíacos de um paciente deve alarmar os médicos caso haja alteração nos batimentos. Outro aspecto importante dos STR é a previsibilidade. O sistema é considerado previsível quando podemos antecipar seu comportamento independentemente de falhas, sobrecargas e variações de hardware.” Wikipedia
*
*/28
 
Algoritmos e Programação
Programas Aplicativos 
 Programas 
 de 
 SistemasHardware
Algoritmos e Programação
Hardware (Equipamentos)
Microcodigos
Sistema Operacional
Software Básico
Compiladores
Editores
BDs
Aplicações
Folha de Pag.
Banking
Compras
Arquitetura em camadas um sistema computacional 
Avaliação/Revisão/Conceitos Básicos 
http://www.ufpa.br/dicas/progra/protipos.htm
*
*/28
 
Algoritmos e Programação
Processo, 
Algoritmos e Programação
Arquitetura em camadas um sistema computacional 
Avaliação/Revisão/Conceitos Básicos 
A programação de um sistema computacional pode ser resumida 
em 3 passos básicos
Entrada
Saída
Dispositivo
de Entrada
Dispositivo
de Saída
Memória
UCP
Processamento
http://www.ufpa.br/dicas/progra/protipos.htm
*
*/28
 
Algoritmos e Programação
Pro Exibir a média de dois números cesso, 
Algoritmos e Programação
Arquitetura em camadas um sistema computacional 
Avaliação/Revisão/Conceitos Básicos 
Entrada
Saída
Dispositivo
de Entrada
Dispositivo
de Saída
Memória
UCP
6 , 8
(6 + 8) / 2
7
Processamento
http://www.ufpa.br/dicas/progra/protipos.htm
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
Programa, Processo, Thread
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Exemplo de alguns passos para
a execução de um programa sobre
a visão do sistema operacional.
*
*/28
 
Algoritmos e Programação
Processo, 
Avaliação e Revisão/Conceitos Básicos
Abstração
Retorno
Algoritmos e Programação
Avaliação/Revisão/Conceitos Básicos 
Operação mental que observa a realidade e 
captura apenas os aspectos relevantes para um contexto
*

Continue navegando