PRG-2012-1-ERALDO
Dados Gerais
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
Dia 27/02/2012
Objetivos
- Plano de Aula.
- Introdução ao funcionamento do computador.
- Tarefa: ler até a página 10 da apostila.
Dia 29/02/2012
Objetivos
- Conceitos em lógica de programação: sequência lógica, instruções, algoritmo e programa;
- Conceito de variáveis e constantes;
- Relação entre variáveis e a memória de um computador;
- Fluxogramas: símbolos para representação de instruções simples e decisão;
- Desenvolver os primeiros fluxogramas para resolver problemas simples.
Exercícios
- Apresentar um fluxograma para ler 3 números e fazer a média;
- Fazer um teste de mesa usando como valores de entrada 2.0, 5.0 e 3.0;
- 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;
- Modifique o algoritmo acima para calcular, além do comprimento, a área da circunferência;
- Construir um fluxograma para ler 3 números e calcular a média dos dois maiores números lidos;
- Refazer o exercício 4 para calcular a média do maior e do menor número entre os 3 lidos.
Tarefa para casa
Ler capítulos 2, 3 e 4 da apostila.
Dia 05/03/2012
Objetivos
- Fixar o conceito de fluxograma usando caixas de instruções e de decisão;
- Fixar o conceito de teste de mesa;
- Conceituar variáveis inteiras e reais (tipos de variáveis em geral);
- Fixar o conceito de constantes.
- Trabalhar expressões com operadores básicos (*,/,+,-).
Solução de exercícios passados para casa
- Construir um fluxograma para ler 3 números e calcular a média dos dois maiores números lidos;
- Construir um fluxograma para ler 3 números e calcular a média do maior e do menor número entre os 3 lidos.
Exercícios em sala
- Refazer o exercício para ler 3 números e calcular a média dos dois maiores números lido usando variáveis auxiliares MAIOR e MENOR;
- Refazer o exercício 4 para calcular a média do maior e do menor número entre os 3 lidos usando variáveis auxiliareas MAIOR e MENOR;
- Construir um fluxograma para ler 6 números e calcular a média dos dois maiores números lidos. Faça um teste de mesa;
- 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 na forma de fluxograma que mostre as palavras "fria", "morna" ou "quente" dependendo da temperatura da água que for informada;
OBS: sempre anote no lado do fluxograma os tipos das variáveis.
Exercícios para casa
- Faça um algoritmo para fazer a divisão de dois números reais. Antes de dividí-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;
- Fazer um algoritmo para computar a área e perímetro de um retângulo. Entrar com os dois lados;
- Fazer um programa para computar as áreas de um retângulo e de um círculo. O programa deve mostrar uma mensagem indicando qual figura possui maior área;
- Considere que a função de uma reta é dada por: . Elabore um fluxograma para calcular o valor de y dado o valor de x.
Dia 6/03/2012
Apresentação dos TCCs
Dia 12/03/2012
Objetivos
- Resolver exercícios de casa.
- Avaliar a capacidade do aluno elaborar pequenos fluxogramas para resolver problemas com sequências simples e caixas de decisão.
- Variáveis do tipo cadeia de caracteres.
Avaliação
Elaborar um fluxograma e um teste de mesa para resolver o seguinte problema. Ler o valor de 3 resistores. Calcular o valor da resistência equivalente aos três resistores em série. Na sequência, calcular a corrente que passaria nestas resistências para uma tensão de 5V aplicada a esta resistência. As entradas inválidas (resistência negativa devem ser rejeitadas).
Variáveis tipo cadeia (string)
- Elaborar um fluxograma para um sistema de segurança que lê uma senha. Se a senha conferir com uma senha pré-armazenada então a porta deve se abrir.
- Estender o programa anterior para ler usuário e senha.
- Estender o programa anterior considerando que existem dois usuários (cada um com a sua senha) no sistema.
Dia 14/03/2012
Objetivos
- Variáveis do tipo cadeia de caracteres.
- Estruturas de repetição (loop simples)
- Conceito de subrotina;
- Conceito de veriáveis globais ao sistema.
Exercícios
- Estender o programa para bloquear um usuário se ele tentar até 3 vezes consecutivas no sistema com a senha incorreta.
- Estender o programa para incluir um usuário admin que permite modificar o userid e a senha de um determinado usuário. Considere que a senha do admin é uma constante. Assuma que existem duas posições de memória associadas ao USR1 e USR2, e duas posições associadas a senha (PWD1 e PWD2). Inicialmente estas variaveis são strings vazias.
- Considere a existência de um sensor que indica se a porta está aberta ou fechada. Se a porta estiver aberta o sistema simplesmente apresenta uma mensagem de porta aberta. Se a porta estiver fechada ele funciona normalmente.
- Estender o programa para que um usuário possa ele mesmo modificar a sua senha.
- Estender o programa para que o admin desbloqueie um usuário bloqueado.
Dia 21/03/2012
Objetivos
- Variáveis do tipo cadeia de caracteres - visão de vetor de caracteres terminadas em NULL
- Mostrar o aspecto de ukma cadeia de caracteres na memória do computador
- Estruturas de repetição estilo WHILE com fluxograma para detectar final de cadeia
- Reforçar o uso de subrotinas com exercícios para calcular o tamanho da cadeia e para detectar a ocorrência de caracteres na cadeia.
Desenvolvimento da Aula
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.
Exercícios
- Elaborar um fluxograma para computar o tamanho de uma cadeia de caracteres que foi lida para uma varíavel.
- Elaborar um fluxograma para computar o número de ocorrências do caracter "a" em uma cadeia lida pelo teclado.
- Implementar um fluxograma para tornar maiúsculas todas as vogais de uma cadeia de caracteres.
Dia 26/03/2012
Objetivos
- Reforçar o conceito de subprogrmas, parâmetros passados e retornados
- Exercícios sobre cadeia de caracteres
Exercícios
- Elaborar um fluxograma para encapsular em subrotina o algoritmo de computação do tamanho de uma cadeia de caracteres
passada como parâmetro. A subrotina deve retornar o tamanho da cadeia.
- Elaborar um fluxograma para comparar o tamanho de duas cadeias que foram fornecidas pelo teclado. Uma mensagem deve ser mostrada caso a primeira cadeia seja maior, menor ou igual a segunda cadeia;
- Elaborar um fluxograma para encapsular em uma subrotina, o algoritmo de comparação de tamanho de duas cadeias. Estas cadeias são fornecidas como parâmetro. O procedimento deve retornar 0 se as cadeias são iguais, 1 se a primeira é maior que a segunda e -1 se a primeira é menor que a segunda;
- Elaborar um fluxograma para receber uma cadeia de caracteres pelo teclado. O procedimento deve mostrar uma mensagem indicando se a cadeia contém a cadeia "casa".
Dia 26/03/2012
Objetivos
- tipo caracter
- Exercícios preparatórios para a avaliação.
Exercícios
- Elaborar uma subrotina na forma de fluxograma, para computar o número de ocorrências do caracter 'a' em uma cadeia de caracteres passada como parâmetro. A subrotina deve retornar o número de caracteres;
- Modificar o exercício anterior para receber o caracter como parâmetro, generalizando a solução;
- Elaborar uma subrotina para receber uma cadeia de caracter repassada como parâmetro (por referência). A subrotina deve inverter a cadeia;
- Elaborar uma subrotina para recer uma cadeia de caracteres (por referência) e um caracter como parâmetro. A subrotina deve acrescentar este caracter no final da cadeia;
- Refazer o exercício para acrescentar o caracter no início da cadeia.
Dia 02/04/2012
Objetivos
- Exercícios de prepaparação para avaliação
Exercícios
- Elaborar uma subrotina para receber uma cadeia de caracter repassada como parâmetro (por referência). A subrotina deve inverter a cadeia;
- Elaborar uma subrotina para recer uma cadeia de caracteres (por referência) e um caracter como parâmetro. A subrotina deve acrescentar este caracter no final da cadeia;
- Refazer o exercício para acrescentar o caracter no início da cadeia.
- Refazer o exercício para inserir o caracter após a primeira ocorrência de uma caracter 'a";
- Refazer o exercício anterior para repassar o caracter como parâmetro.
Dia 04/04/2012
Objetivos
- Avaliação (primeiras duas aulas)
=== Exercícios de referência
- Elaborar um fluxograma de um programa principal que lê três números reais. O procedimento deve mostrar (imprimir) todos os números acima da média calculada entre os três números. Mostrar um teste de mesa mostrando a evolução das variáveis do problema (incluindo a média).
- Elaborar um fluxograma de uma subrotina que recebe uma cadeia de caracteres como parâmetro e um caracter. A subrotina deve retornar o número de ocorrências deste caracter;
- Elaborar um fluxograma de uma subrotina que recebe uma cadeia de caracteres como parâmetro (passada como referência). A subrotina deve excluir todas as vogais da cadeia. Por exemplo: se a cadeia for "casa", deve ficar "cs"