Mudanças entre as edições de "PRG-2012-1-ERALDO"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 264: Linha 264:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 
main()
 
  
 
*Compilar o programa com o gcc:
 
*Compilar o programa com o gcc:

Edição das 07h46min de 11 de abril de 2012

Dados Gerais

Nome do Professor: Eraldo Silveira e Silva

email: eraldo@ifsc.edu.br

Material de Referência

Horário de Atendimento Paralelo

Quarta das 16 às 17h.

Aulas

Dia 27/02/2012

Objetivos

  1. Plano de Aula.
  2. Introdução ao funcionamento do computador.
  3. Tarefa: ler até a página 10 da apostila.

Dia 29/02/2012

Objetivos

  1. Conceitos em lógica de programação: sequência lógica, instruções, algoritmo e programa;
  2. Conceito de variáveis e constantes;
  3. Relação entre variáveis e a memória de um computador;
  4. Fluxogramas: símbolos para representação de instruções simples e decisão;
  5. Desenvolver os primeiros fluxogramas para resolver problemas simples.

Exercícios

  1. Apresentar um fluxograma para ler 3 números e fazer a média;
  2. Fazer um teste de mesa usando como valores de entrada 2.0, 5.0 e 3.0;
  3. 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;
  4. Modifique o algoritmo acima para calcular, além do comprimento, a área da circunferência;
  5. Construir um fluxograma para ler 3 números e calcular a média dos dois maiores números lidos;
  6. 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

  1. Construir um fluxograma para ler 3 números e calcular a média dos dois maiores números lidos;
  2. 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

  1. 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;
  2. 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;
  3. 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;
  4. 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

  1. 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;
  2. Fazer um algoritmo para computar a área e perímetro de um retângulo. Entrar com os dois lados;
  3. 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;
  4. 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

  1. Resolver exercícios de casa.
  2. Avaliar a capacidade do aluno elaborar pequenos fluxogramas para resolver problemas com sequências simples e caixas de decisão.
  3. 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)

  1. 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.
  2. Estender o programa anterior para ler usuário e senha.
  3. Estender o programa anterior considerando que existem dois usuários (cada um com a sua senha) no sistema.


Dia 14/03/2012

Objetivos

  1. Variáveis do tipo cadeia de caracteres.
  2. Estruturas de repetição (loop simples)
  3. Conceito de subrotina;
  4. Conceito de veriáveis globais ao sistema.

Exercícios

  1. Estender o programa para bloquear um usuário se ele tentar até 3 vezes consecutivas no sistema com a senha incorreta.
  2. 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.
  3. 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.
  4. Estender o programa para que um usuário possa ele mesmo modificar a sua senha.
  5. Estender o programa para que o admin desbloqueie um usuário bloqueado.

Dia 21/03/2012

Objetivos

  1. Variáveis do tipo cadeia de caracteres - visão de vetor de caracteres terminadas em NULL
  2. Mostrar o aspecto de ukma cadeia de caracteres na memória do computador
  3. Estruturas de repetição estilo WHILE com fluxograma para detectar final de cadeia
  4. 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

  1. Elaborar um fluxograma para computar o tamanho de uma cadeia de caracteres que foi lida para uma varíavel.
  2. Elaborar um fluxograma para computar o número de ocorrências do caracter "a" em uma cadeia lida pelo teclado.
  3. 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

  1. 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.

ComputarTamnhoString.jpg

  1. 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;

ComparaTamanhoDuasCadeias.jpg

  1. 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;
  2. 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

  1. tipo caracter
  2. Exercícios preparatórios para a avaliação.

Exercícios

  1. 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;
  2. Modificar o exercício anterior para receber o caracter como parâmetro, generalizando a solução;
  3. Elaborar uma subrotina para receber uma cadeia de caracter repassada como parâmetro (por referência). A subrotina deve inverter a cadeia;
  4. 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;
  5. Refazer o exercício para acrescentar o caracter no início da cadeia.

Dia 02/04/2012

Objetivos

  1. Exercícios de prepaparação para avaliação

Exercícios

  1. Elaborar uma subrotina para receber uma cadeia de caracter repassada como parâmetro (por referência). A subrotina deve inverter a cadeia;
  2. 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;
  3. Refazer o exercício para acrescentar o caracter no início da cadeia.
  4. Refazer o exercício para inserir o caracter após a primeira ocorrência de uma caracter 'a";
  5. Refazer o exercício anterior para repassar o caracter como parâmetro.

Dia 04/04/2012

Objetivos

  1. Avaliação (primeiras duas aulas)

Exercícios de referência

  1. 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);
  2. 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. Fazer um exemplo, na forma de fluxograma, de como esta subrotina pode ser chamada;
  3. 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"

Dia 08/04/2012

Objetivos

  1. Explorar vetores de inteiros e reais

Exercícios

  1. Elaborar um fluxograma para ler 10 números reais para um vetor X.
  2. Modificar o exercício anterior para ler N números reais para um vetor.
  3. Modificar o exercício anterior para fazer também a média dos N números.
  4. Colocar o procedimento anterior na forma de uma subrotina que recebe o vetor X como parâmetro e retorna a média.
  5. Elaborar um fluxograma para ler os N números para um vetor X e mostrar o número de ocorrências dos números que estão acima da média. Usar a subrotina de cálculo da média já implementada anteriormente.
  6. Elaborar um fluxograma de uma subrotina que que recebe dois vetores X1 e X2 e seus respectivos tamanhos N1 e N2. A subrotina deve retornar 0 se a média dos elementos de X1 for maior que X2, deve retornar 1 se a média de X1 for menor que a de X2 e retornar 2 se a média for igual a X2.

Dia 10/04/2012

Objetivos

  1. Entrega da avaliação
  2. Introdução a linguagem C
  3. Conceito de programa fonte, objeto e executável
  4. O processo de compilação com gcc
  5. A função main()
  6. Declaração de variáveis inteiras e reais
  7. Função de entrada de dados scanf() e de saída de dados
  8. Mapeando um fluxograma (principal) em um programa C

Introdução a linguagem C

  • Histórico
  • Características da Linguagem

Conceito de programa fonte, objeto e executável

O processo de compilação com gcc

O processo de desenvolvimento do programa envolve:

  • Editar o programa com um editor de texto tal como o vi ou gedit;
  • Salvar o programa com a terminação ".c" (ou ".h") se for um cabeçalho;

Exemplo: salve o pŕograma abaixo como teste.c

 

#include <stdio.h>

main()
{
  printf("Alo Mundo\n");
}
  • Compilar o programa com o gcc: