PRG-2011-2
Nome do Professor: Eraldo Silveira e Silva
email: eraldo@ifsc.edu.br
Material de Referência
- Apostila adotada: Curso de Linguagem C - Engenharia Elétrica - UFMG
Horário de Atendimento Paralelo
Quarta das 16 às 17h.
Aulas
3/08/2011:
Objetivos da Aula
-apresentar plano de ensino;
-conceitos básicos de programação e algoritmos (até pg 10 da apostila)
-apresentar o básico do fluxograma para ler 3 números e fazer a média;
5/08/2011:
1.Considere um algoritmo para calcular o comprimento de uma circunferência. Quem são os dados de entrada e os dados de saída. Fazer um fluxograma para resolver o problema.
2.Modifique o algoritmo acima para calcular, além do comprimento, a área da circunferência.
3.Construir um fluxograma para ler 3 números e calcular a média dos dois maiores números lidos.
4.Refazer o exercício 3 para calcular a média do maior e do menor número entre os 3 lidos.
10/08/2011
Objetivos
-Trabalhar estruturas de decisão e repetição simples
Exercícios
- Escreva um programa que leia N números e calcule a média deles;
- Retrabalhar o exercício 4 da aula anterior para deixá-lo genérico: média entre o maior e o menor de n n números. Supor que n é o primeiro núumero lido.
Solução 1: Usando um loop estilo GOTO
12/08/2011
Troca das turmas
-Trabalhar estruturas de decisão e repetição simples
Exercícios
- Você trabalha na Airbus e deve construir programa que lê as informações do manche quando ele é empurrado ou puxado (é um airbus antigo, os novos tem joystick) e gera um alarme quando o ângulo de arfagem é maior ou menor que 45 graus. O comando de leitura é LerProfundor(variavel). Ver http://pt.wikipedia.org/wiki/Profundor
- Um estudo sobre sensibilidade de pessoas a temperaturas da água identificou que a maioria das pessoas considera fria a água com temperaturas abaixo de 25 graus, morna entre 25 e 30 graus, e quente acima de 30 graus. Escreva um algoritmo que mostre as palavras "fria", "morna" ou "quente" dependendo da temperatura da água que for informada.
- Faça um algoritmo para fazer a divisão de dois números reais. Antes de dividi-los deve ser feito um teste de validade. Caso não seja possível dividi-los, deve ser mostrada uma mensagem de erro. Se for possível, deve-se mostrar o resultado da divisão.
- Escreva um programa que leia cinco números do teclado e mostre os dois maiores números.
17/08/2011
19/08/2011
24/08/2011
Avaliação surpresa.
26/08/2011
Não teve aula
31/08/2011
Objetivos
- continuar o trabalho com fluxogramas;
- tipo cadeia de caracteres;
- vetor de caracteres;
Desenvolvimento da Aula
-Apresentação do tipo vetor de caracteres (string);
Um caracter pode ser armazenado em uma "caixa" de memória correspondente a um byte. Basta usar uma codificação adequada, Por exemplo, o uso de código ASCII permite representar a letra A como o byte 41H.
Uma cadeia de caracteres (string) pode ser implementada como uma sequência de caracteres, ou seja, um vetor de caracteres. Para marcar o final da cadeia, muitas linguagens (o C, por exemplo) se utilizada do 0 (NULL) no final da cadeia.
Do ponto de vista de nossas representações em fluxogramas, vamos tratar uma cadeia de caracteres como uma variável única, referenciada por um nome.
Exercícios
1.Elaborar um fluxograma que permite controlar o acionamento de uma porta através de uma senha. Se a senha fornecida pelo usuário corresponde a uma senha previamente armazenada, a porta deve ser aberta. Caso não corresponda, uma mensagem será mostrada indicando que a senha não confere.
2.Incrementar a solução do exercício 1 para um sistema que permite armazenar até 10 senhas diferentes em um vetor de senhas.
3.Incrementar a solução do exercício 2 para um sistema que armazena em uma tabela, o nome de usuários e outra tabela que armazena as senhas. A linha correspondente ao usuário é a mesma linha que corresponde a senha na tabela de senhas.
02/09/2011
Objetivos
- continuar o uso de fluxogramas;
- apresentar a caixa correspondente ao for (laços controlados);
- exercícios combinando vetores de cadeias com vetores de reais e inteiros,
- procura por padrões em uma cadeia;
Referência adicional sobre fluxogramas
Exercícios
1.Implementar o exercício 3 da aula anterior usando a caixa de laços controlados.
2.Implementar um fluxograma que permite acrescentar senhas no caso do exercício 2 da aula anterior. Suponha que quando for fornecida uma senha de valor "1234", o sistema desvia o fluxo para entrada de nova senha. Uma senha somente pode ser inserida se existir espaço livre na tabela. Espaços livres contem senhas vazias do tipo "".
3.Considere que uma cadeia de caracteres já está armazenada em vetor X. Esta cadeia é terminada em NULL. Elabore um fluxograma que permita ler um caracter do mundo externo e contar o número de caracteres existentes na cadeia.
07/09/2011
Feriado
09/09/2011
Objetivos
- Revisão Geral: tipos de dados (inteiro,real,caracteres, vetores, strings); constantes e variáveis; expressões;estruturas de controle: decisão e controle;
- Teste relâmpago;
- Apresentação do Portugol: tipos de dados, definição de variáveis, entrada e saída de dados, estrutura de decisão SE.
Teste relâmpago
Portugol (extraído da página do Prof.Marcelo Sobral e Tiago Semprebom)
As aulas de Lógica de Programação usarão um software de auxílio ao ensino de algoritmos chamado Portugol, desenvolvido na Escola Superior de Engenharia do Instituto Politécnico de Tomar, em Portugal.
Guia rápido de instalação e utilização do Portugol
Abaixo segue uma breve ajuda de como obtê-lo, instalá-lo e usá-lo. Esse guia assume que você esteja usando o Ubuntu Linux 9.04 ou superior.
- Faça o download do Portugol.
- Descompacte-o com o seguinte comando:
tar xzf portugol23.tar.gz
- Repare que existe agora um subdiretório portugol no diretório onde você o descompactou. Execute o Portugol com o seguinte comando: Obs: você precisará ter Java instalado. Caso não o tenha, execute o comando:
java -jar portugol/Portugol.jar
sudo apt-get install openjdk-6-jre
- Copie esse arquivo para poder ver fluxogramas coloridos, e grave-o no memso diretório onde está o Portugol.
- Veja a ajuda do Portugol, e use-a sempre que tiver dúvidas !
A tela inicial do Portugol segue abaixo, junto com um programa demonstrativo.
Exemplos de programas iniciais em Portugol:
- Lendo um número e mostrando-o na tela em seguida:
Inicio inteiro x Escrever "Digite um numero: ", Ler X Escrever "Numero digitado: ", x Fim
- Lendo dois números, somando-os e mostrando o resultado na tela: O programa abaixo é equivalente:
Inicio inteiro x, y Escrever "Digite um numero: ", Ler x Escrever "Digite outro numero: ", Ler y Escrever "Soma = ", x+y Fim
Inicio inteiro x, y, z Escrever "Digite um numero: ", Ler x Escrever "Digite outro numero: ", Ler y z <- x + y Escrever "Soma = ", z Fim
Problema base: Entrar com o seu nome e com a sua idade e apresentar um texto dizendo se voce tem mais ou menos que vinte anos.
Tipos de Dados e definição de varáveis e constantes
Ver:
Estrutura de Decisão SE
Ver:
Exercícios
1.Fazer em Portugol um programa para calcular a área de um círculo. Definir o PI como constante.
2.Refazer o exercício anterior com a opção de calcular a área ou a circunferência.
14/09/2011
OBJETIVOS
- Tipos de Dados no Portugol
- Estruturas de Repetição: PARA,ENQUANTO,
Estrutura ENQUANTO
inicio
inteiro contador
contador <- 0
enquanto contador < 10 faz
escrever contador , "\t"
contador <- contador + 1
fimenquanto
fim
Estrutura PARA
inicio
inteiro contador
para contador de 0 ate 9 passo 1
escrever contador , "\t"
proximo
fim
Estrutura REPETE
inicio
inteiro mes
repete
escrever "introduza um mes :"
ler mes
ate mes > 0 e mes < 13
escrever "\nmes introduzido :" , mes
fim
Estrutura FAZ ENQUANTO
inicio
inteiro mes
faz
escrever "introduza um mes :"
ler mes
enquanto mes < 0 ou mes > 13
escrever "\nmes introduzido :" , mes
fim