TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba- –
Agenda Revisão Estrutura básica de controle – Algoritimo Estrutura de controles condicionais – C Estrutura de controle repetitvas - C Programação básica – C Orientaçoes para avaliação Regimental 2 03/08/2011 Professor Leomir J. Borba- –
Estruturas básicas de controle Seqüência simples – Conjunto de comandos separados por ponto e Virgula e executados em seqüência linear de cima para baixo 3 03/08/2011 Professor Leomir J. Borba- –
Estruturas básicas de controle Alternativa Simples ou Composta – Quando ação a ser executada depender de inspeção ou teste. SIMPLES 4 03/08/2011 Professor Leomir J. Borba- –
Estruturas básicas de controle COMPOSTA 5 03/08/2011 Professor Leomir J. Borba- –
Estruturas básicas de controle Repetição – Quando conjunto de ações é executado repetidamente enquanto condição permanecer valida. 6 03/08/2011 Professor Leomir J. Borba- –
Programação Implementação de estruturas de controle condicionais. Implementadas através de comandos de decisão, usados para decidir o que deve ser feito de acordo com uma expressão de teste. IF – Decisão simples, com uma instrução sem chaves “{}”, com mais de uma instrução necessita chaves “{}” 1 instrução + de 1 instrução IF(expressao de teste) instrução; { Instrução; } 7 03/08/2011 Professor Leomir J. Borba- –
Programação Implementação de estruturas de controle condicionais - Cont. IF ELSE – Expansão da decisão simples, tem duas ações possíveis de acordo com expressão de teste, com uma instrução sem chaves “{}”, com mais de uma instrução necessita chaves “{}” 1 instrução + de 1 instrução IF(expressao de teste) Instrução; { else Instrução; instrução; Instrução; } else { Instrução; instrução; } 8 03/08/2011 Professor Leomir J. Borba- –
Programação Implementação de estruturas de controle condicionais - Cont. IF ELSE encadeada – Implementa a estrutura de controle condicional encadeada heterogena. If(pais == ‘Brasil’) { if( estado == ‘São Paulo’) if( cidade == ‘São Paulo’) cout << “\nVoce esta na capital de São Paulo, Brasil”; else cout << “\nVoce não esta na capital de são Paulo; } else cout << “Pais não e Brazil”; 9 03/08/2011 Professor Leomir J. Borba- –
Programação Implementação de estruturas de controle condicionais - Cont. IF ELSE encadeada – Implementa a estrutura de controle condicional encadeada homogênea. If(op == ‘+’) cout << n1+n2; else if( op == ‘-’) cout << n1 * n2; else if( op == ‘/’) cout << n1 / n2; 10 03/08/2011 Professor Leomir J. Borba- –
Algoritimo Estrutura de controle – Seleção múltipla. Seleções encadeadas homogêneas se-senão-se, são bastante freqüentes para o tratamento de listas de valor, Para simplificar a escrita, pode-se utilizar o comando escolha. início real: Preço; inteiro: Origem; leia (Preço, Origem); escolha Origem caso 1: escreva (Preço, “ – produto do Sul”); caso 2: escreva (Preço, “ – produto do Norte”); caso 3: escreva (Preço, “ – produto do Leste”); caso 4: escreva (Preço, “ – produto do Oeste”); caso 7, 8, 9: escreva (Preço, “ – produto do Sudeste”); caso : escreva (Preço, “ – produto do Centro-Oeste”); caso 5, 6, : escreva (Preço, “ – produto do Nordeste”); caso contrário: escreva (Preço, “ – produto importado”); fimescolha; fim /08/2011 Professor Leomir J. Borba- –
Programação Implementação de Estrutura de controle – Seleção múltipla - Continuação. Comando switch – Permite selecionar uma entre varias ações alternativas, melhor do que if-else, mais “elegante”. Sintaxe : Inicio comando switch com variável ou constante entre parênteses, corpo de comandos entre chaves ( {} ), condição de verificação após palavra “case”. Switch(f) { case f=1; cout << “\nDomingo”; break; case f=2; cout << “\nSegunda”; } 12 03/08/2011 Professor Leomir J. Borba- –
Algoritmos: Estruturas de controle – Repetição.WHILE/FOR Laço while Implementa uma estrutura de repetição controlada pela verificação de uma condição. Sintaxe : While (condição) OU While (condição) ; { ; } Ao final da ultima instrução no corpo do comando avalia se a condição continua verdadeira, caso continua repete as instruções dentro do corpo até que a condição não seja mais verdadeira 13 03/08/2011 Professor Leomir J. Borba- –
Algoritmos: Estruturas de controle – Repetição.WHILE/FOR Laço while – continuação Ex.: int Ndia =1 while (ndia<=7) { printf (“Dia : %d\n",Ndia); Ndia++; } Execução do laço pode ser interrompida por quebra de condição ou comando Break que causa a saida do laço para a proxima instrução após o laço (}) /08/2011 Professor Leomir J. Borba- –
Algoritmos: Estruturas de controle – Repetição.WHILE/FOR O comando Break afeta apenas o laço interno a ele no caso de laços aninhados Lacos Aninhados : while (true) { int nCont = 1000; int nPara=0; printf("\n Entre com o numero de parada "); scanf("%d", &nPara); while (nCont > 0) { nCont--; cout << "\n \n" << nCont << "\n"; if(nCont==nPara) break; } 15 03/08/2011 Professor Leomir J. Borba- –
Algoritmos: Estruturas de controle – Repetição.WHILE/FOR O comando CONTINUE força a proxima iteração do laço e pula o codigo que estiver abaixo dele, ou seja força a avaliação da expressão de teste e depois continua o laço Ex.: Imprime caracteres digitados que são diferentes de digitos 16 03/08/2011 Professor Leomir J. Borba- –
Algoritmos: Estruturas de controle – Repetição.WHILE/FOR O comando CONTINUE força a proxima iteração do laço e pula o codigo que estiver abaixo dele, ou seja força a avaliação da expressão de teste e depois continue o laço Ex.: Imprime caracteres digitados que são diferentes de digitos 17 03/08/2011 Professor Leomir J. Borba- –
Algoritmos: Estruturas de controle – Repetição.WHILE/FOR A estrutura DO-WHILE, similar a estrura WHILE, faz a verificação de teste no final da estrura, bom para situações em que instruções no corpo devam ser excutadas antes da verificação, com sintaxe no exemplo a seguir: 18 03/08/2011 Professor Leomir J. Borba- –
Programação Espaço em branco é desconsiderado pelo compilador Exceções Cadeia de caracteres constantes não podem ser separadas em diversas linhas Nomes de funções,operadores e comandos de linguagem não podem ser separados Diretivas como #include não podem ser escritas em diversas linhas Toda instrução termina em ; Instruções devem ser escritas entre {} Operador de inserção << conecta mensagem ao comando cout (objeto da classe I/O leitura e impressão) 19 03/08/2011 Professor Leomir J. Borba- –
Programação Diretiva do pré processador - #include - Programa que examina o programa fonte e executa modificações Inserindo o a biblioteca (arquivos de inclusão no diretório INCLUDE) no código fonte antes da compilação. Arquivo iostream.h – Contem cout, << e recupera dados digitados no teclado e saída em video. Códigos especiais – Não podem ser digitados no teclado, obtidos por meio de combinação do sinal \ 20 03/08/2011 Professor Leomir J. Borba- –
Programação Tabela de códigos especiais 21 03/08/2011 Professor Leomir J. Borba- –
Programação Exemplo de uso de códigos especial – Imprimindo uma nova linha: #include Main() { Cout << “\nPrimeiro programa”; } 22 03/08/2011 Professor Leomir J. Borba- –
Programação Constantes numéricas – Valor fixo e inalteravel DECIMAL – Não podem estar entre aspas HEXADECIMAL – 0X41, 0X1afb (Base 16 precedidos de 0x) OCTAL – 041,010, 0754 (Base 8 Precedidos de 0) 010 diferente de 10 CARACTER – Definida para números entre 0 e 255, significa que cabe em 1 byte, escritos com aspas simples ‘5’, ‘a’,’w’,’\n’,’\t’ Aspas simples ‘’ para único caractere Aspas duplas “” para cadeia de caracteres /08/2011 Professor Leomir J. Borba- –
Programação Variáveis – Espaço de memória reservado para certo tipo de dados Terá valores diferentes em diferentes momentos. Declaração de variáveis – reserva espaço de memória de acordo com tipo, sempre devem ser declaradas. Ex. : Int num1; TIPOS BÁSICOS 24 03/08/2011 Professor Leomir J. Borba- –
Programação Modificadores – long, short, unsigned Com exceção de void os tipos basicos podem ser acompanhados de modificadores na declaração 25 03/08/2011 Professor Leomir J. Borba- –
Programação Inicializando variáveis – Possível combinar declaração com atribuição de valor : Int evento = 5; Char corrida = ‘c’; Float tempo = 27.25; Modificador unsigned- indica interpretação do bit superior como outro qualquer e não como bit de sinal (para numero positivo é 0 para negatico é 1) – sera visto em detalhes adiante Ex. : unsigned j=6500 Saída será var unsigned = 6500 Var int = /08/2011 Professor Leomir J. Borba- –
Programação Nome de variaveis. Observar significância Começa obrigatoriamente com letra ou caractere sublinhado Pode conter letras maiúsculas, minúsculas, digitos de 0 a 9 e caractere sublinhado PESO, Peso, peso, peSo – São DIFERENTES! Apesar de não ter limitação na quantidade de caracteres no nome, apenas os primeiros 32 são considerados. Ex.: Orcamento_de_Contabilidade_de_ /08/2011 Professor Leomir J. Borba- –
Programação Variaveis não pode ter o mesmo nome de palavras-chave ou reservadas /08/2011 Professor Leomir J. Borba- –
Exercícios Escreva um algoritmo que implemente as estruturas básicas de controle. O algoritmo deve implementar o processo de entrada em uma balada onde mulheres pagam meia, venda de bebidas na balada e desconto para Corinthianos. Implemente o algoritmo anterior em C. Crie um programa em C para calcular e media de idade de uma família com Avó, Avo, Pai, Mãe, Filho e filha. Utilize estrutura while na versao A e do While na Versão B /08/2011 Professor Leomir J. Borba- –
Instruções para Avaliação regimental Inicio as 20:00 impreterivelmente, após esse horário solicitar segunda chamada pelo aluno online, verificar o prazo. Final – 22:00 impreterivelmente. Permitido consulta ao material de aula Permitido uso de computador – posições separadas, s internet. 2 questões de 3 pontos e 1 questão de 1 ponto. Correção após entrega, deve permanecer em sala Gabarito sera entregue ao representante no final /08/2011 Professor Leomir J. Borba- –
Bibliografia 03/08/2011 Professor Leomir J. Borba- – 31 BIBLIOGRAFIA BÁSICA 1 GUIMARÃES, Ângelo de Moura e LAGES, Alberto de Castilho. Algoritmos e estruturas de dados. 1ª edição. Rio de janeiro. LTC, MIZHARI, Victorine Viviane. Treinamento – Módulo 1. 1ª Edição, São Paulo. Editora Makron Books, BIBLIOGRAFIA COMPLEMENTAR 3 Forbellone, A. L. V. e Eberspacher, H. F.. Lógica de Programação - a Construção de Algoritmos e Estruturas de Dados. 3ª edição. Pearson, FARRER, Harry et al. Algoritmos Estruturados. 3ª Edição.Rio de Janeiro:LTC, SCHILDT, Herbert. C, completo e total. 3ª Edição. Makron Books, 1997