A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução à Programação

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação"— Transcrição da apresentação:

1 Introdução à Programação
Controle do Programa Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria,Ulrich Schiel Carga Horária: 60 h

2 Introdução à Programação
Tópicos 4.1 Introdução 4.2 Fundamentos da Repetição 4.3 Repetição Controlada por Contador 4.4 Estrutura de Repetição For 4.5 Estrutura For : Notas e Observações 4.6 Exemplos de Uso da Estrutura For 4.7 Estrutura de Seleção Multipla Switch 4.8 Estrutura de Repetição Do/While 4.9 Instruções Break e Continue 4.10 Operadores Lógicos 4.11 Confusão entre os Operadores de Igualdade (==) e de Atribuição (=) 4.12 Resumo de Programação Estruturada

3 4.1 Introdução Tópicos abordados
Estruturas adicionais de controle de repetição For Do/while Estrutura de seleção múltipla switch Instrução break Usada para sair imediata e rapidamente de certas estruturas de controle Instrução continue Usada para saltar o restante do corpo de uma estrutura de repetição, procedendo com a próxima iteração do laço

4 4.2 Fundamentos da Repetição
Laço Grupo de instruções que o computador executa repetidamente enquanto alguma condição permanece verdadeira Repetição controlada por contador Repetição definida  Conhecimento do número de vezes de execução do laço Uso de variável de controle  Contagem do número de repetitições

5 4.2 Fundamentos da Repetição
Repetição controlada por sentinela Repetição indefinida Uso  Falta de conhecimento prévio do número de repetições Valor da sentinela  Término dos dados

6 4.3 Fundamentos da Repetição Controlada por Contador
Exigências da repetição controlada por contador Nome de uma variável de controle (ou contador de laço) Valor inicial da variável de controle Condição de teste do valor final da variável de controle (i.e. se o laço deve continuar) Incremento (ou decremento) para a alteração da variável de controle a execução do laço (iteração)

7 4.3 Fundamentos da Repetição Controlada por Contador
Exemplo int contador = 1; // inicialização while (contador <= 10) { // condição de repetição printf( "%d\n", contador ); ++contador; // incremento } Declaração int contador = 1; Fornecimento do nome contador para a variável Declaração de um tipo (inteiro) para a variável Reserva de espaço para armazenamento da variável na memória Definição do valor inicial da variável como 1

8 4.4 Estrutura de Repetição for
Formato geral dos laços for for (inicialização; teste_de_continuação_do_laço; incremento) instrução Exemplo for (contador = 1; contador <= 10; contador++) printf("%d\n", contador); Impressão dos inteiros de 1 a 10 Sem ponto-e-vírgula (;) após a última expressão

9 4.4 Estrutura de Repetição for
Possibilidade de eventual substituição de laços for por laços while inicialização; while (teste_de_continuação_do_laço){ instrução; incremento; (ou decremento;) } Inicialização e incremento Possibilidade de uso de listas separadas por vírgulas Exemplo for (i = 0, j = 0; j + i <= 10; j++, i++) printf("%d\n", j + i); Separação por vírgula (,)

10 4.5 Estrutura for: Notas e Observações
Expressões Aritméticas Possibilidade de inclusão de expressões aritméticas à inicialização, condição de continuação do laço e ao incremento/decremento Se x igual a 2 e y igual a 10 for (j = x; j <= 4 * x * y; j += y / x é equivalente a for (j = 2; j <= 80; j += 5

11 4.5 Estrutura for: Notas e Observações
Notas sobre a estrutura for Incremento pode ser negativo (decremento) Se a condição de continuação do laço é inicialmente falsa O corpo da estrutura for não é realizada A execução prossegue com a próxima instrução após a estrutura for Variável de Controle Freqüentemente (mas não necessáriamente) impressa ou usada dentro do corpo

12 4.5 Estrutura for: Notas e Observações
01 /* Soma com for */ 02 #include <stdio.h> 03 04 int main() 05 { 06 int soma = 0, numero; 07 08 for (numero = 2; numero <= 100; numero += 2) 09 soma += numero; 10 printf( “A soma eh %d\n", soma ); 12 13 return 0; 15 } A soma eh 2550

13 4.7 Estrutura de Seleção Múltipla switch
Uso em contextos de testes separados para cada um dos valores passíveis de serem assumidos por uma variável ou expressão  Decisões múltiplas Formato Série de rótulos case e um rótulo opcional default switch (valor) { case '1': ações case '2': default: } break;  Abandono da estrutura

14 4.7 Estrutura de Seleção Múltipla switch
Fluxograma da estrutura switch V case a break ações do case a F case b V break ações do case b F V case z break ações do case z F ações default

15 4.5 Estrutura switch: Notas e Observações
01 Contagem de conceitos */ 02 #include <stdio.h> 03 04 int main() 05 { 06 int conceito; 07 int contaA = 0, contaB = 0, contaC = 0, 08 contaD = 0, contaF = 0; 09 10 printf("Entre com os conceitos.\n" ); 11 printf("Entre com o caractere EOF para o final das entradas.\n"); 12 while ((conceito = getchar()) != EOF) { switch (conceito) { /* switch aninhado em um while */ case 'A': case 'a': /* conceito foi A maiúsculo ou minúsculo */ contaA; /* incremento do contador de As */ break; 17 case 'B': case 'b': /* conceito foi B maiúsculo ou minúsculo */ contaB; /* incremento do contador de Bs */ break; 20 case 'C': case 'c': /* conceito foi C maiúsculo ou minúsculo */ contaC; /* incremento do contador de Cs */ break; 23 case 'D': case 'd': /* conceito foi D maiúsculo ou minúsculo */ contaD; /* incremento do contador de Ds */ break;

16 4.5 Estrutura switch: Notas e Observações
26 case ‘F’: case ‘f’: /* conceito foi B maiúsculo ou minúsculo */ contaF; /* incremento do contador de Fs */ break; 29 case ‘\n': case ‘ ’: /* entradas ignoradas */ break; 31 default: /* demais conceitos */ printf(“Fornecido um conceito incorreto.”); printf(“Entre com um novo conceito.\n”); break; 35 } 36 } 37 printf( "\nTotais para cada letra de conceito são:\n" ); 38 printf( "A: %d\n", contaA ); 39 printf( "B: %d\n", contaB ); 40 printf( "C: %d\n", contaC ); 41 printf( "D: %d\n", contaD ); 42 printf( "F: %d\n", contaF); 43 return 0 44 }

17 4.5 Estrutura switch: Notas e Observações
Resultado Entre com os conceitos. Entre com o caractere EOF para o final das entradas. A B C D F E Fornecido um conceito incorreto. Entre com um novo conceito. Totais para cada letra de conceito sao: A: 3 B: 2 C: 3 D: 2 F: 1

18 4.8 Estrutura de Repetição do/while
A estrutura de repetição do/while Similar à estrutura do while Teste da condição para repetição  Após a execução do corpo do laço Realização das ações  Pelo menos uma vez Formato do { instrução; } while (condição);

19 4.8 Estrutura de Repetição do/while
Exemplo int contador = 1; do { printf("%d ", contador); } while (++contador <= 10); Resultado  Impressão dos inteiros de 1 a 10

20 4.8 Estrutura de Repetição do/while
Fluxograma da estrutura de repetição do/while ações condição V F

21 4.5 Estrutura do/while: Notas e Observações
01 /* Uso da estrutura de repetição do/while */ 02 #include <stdio.h> 03 04 int main() 05 { 06 int contador = 1; 07 do { printf( "%d ", contador ); 09 } while (++contador <= 10); 10 return 0; 14 }

22 4.9 Instruções break e continue
Saída imediata de uma estrutura while, for, do/while ou switch Continuação da execução do programa a partir da primeira instrução após a estrutura Usos comuns da instrução break Saída prematura de um laço Desconsideração do restante de uma estrutura switch

23 4.9 Instruções break e continue
Desconsideração das instruções restantes do corpo de uma estrutura while, for ou do/while Prosseguimento com a próxima iteração do laço while e do/while Avaliação do teste de continuação do laço imediatamente após a execução da instrução continue For Execução das expressões de incremento, após o que ocorre a avaliação do teste de continuação do laço

24 4.9 Instruções break e continue
01 /*Uso da instrução continue em uma estrutura for */ 02 #include <stdio.h> 03 04 int main() 05 { 06 int x; 07 for (x = 1; x <= 10; x++) { 08 if (x == 5) 09 continue; /* ignora o código restante em um laço somente se x=5*/ 10 printf("%d ", x); 11 } 12 printf("\nContinue é usado para saltar a impressão do 5\n" ); 13 return 0; 14 } Continue é usado para saltar a impressão do 5

25 4.10 Operadores Lógicos && (E lógico) || (OU lógico)
Retorna verdadeiro se ambas as condições são verdadeiras || (OU lógico) Retorna verdadeiro pelo menos uma das condições são verdadeiras ! (NÃO lógico, negação lógica) Inverte a verdade/falsidade de sua condição Operador unário, tem um único operando

26 4.10 Operadores Lógicos Uso típico como condições em laços Expressão
Resultado verdadeiro && falso falso verdadeiro || falso verdadeiro !verdadeiro !falso

27 4.11 Confusão entre os Operadores de Igualdade (==) e Atribuição (=)
Erro perigoso!!! Comumente não causa erro de sintaxe Qualquer expressão que produz um valor pode ser usado em estruturas de controle Valores diferentes de zero são verdadeiros, valores zero são falsos Exemplo de uso do operador de igualdade (==) if (codigo_de_pagamento == 4) printf(“Você obteve um bônus!\n"); Verificação de codigo_de_pagamento, se ele é um 4 então é premiado com um bônus

28 4.11 Confusão entre os Operadores de Igualdade (==) e Atribuição (=)
Exemplo de substituição de == por = if (codigo_de_pagamento = 4) printf(“Voce obteve um bônus!\n"); Atribuição do valor 4 a codigoDePagamento 4 é diferente de zero; Assim, a expressão é verdadeira e sempre haverá a premiação com o bônus, não importando qual era o valor de codigoDePagamento Erro de lógica, não erro de sintaxe

29 4.11 Confusão entre os Operadores de Igualdade (==) e Atribuição (=)
lvalues (valores esquerdos) Expressões que podem aparecer no lado esquerdo de uma atribuição Seus valores podem ser alterados, assim como os nomes de variáveis x = 4;

30 4.11 Confusão entre os Operadores de Igualdade (==) e Atribuição (=)
rvalues (valores direitos) Expressões que só podem aparecer no lado direito de uma equação Constantes, tais como números Não se pode escrever 4 = x; Deve-se escrever x = 4; lvalues podem ser usados como rvalues, mas não o contrário y = x;

31 4.12 Resumo de Programação Estruturada
Maior facilidade de compreensão, teste, depuração e alteração de programas Regras para programação estruturada Regras desenvolvidas pela comunidade de programação Uso exclusivo de estruturas de controle com única entrada/única saída

32 4.12 Resumo de Programação Estruturada
Regras Ponto de Partida  Fluxograma mais simples Substituição de qualquer retângulo (ação) por dois retângulos (ações) em seqüência Substituição de qualquer retângulo (ação) por um comando C (atribuição, entrada/saída) ou qualquer estrutura de controle (seqüência, if, if/else, switch, while, do/while ou for) Aplicação das regras 2 and 3 enquanto for possível

33 4.12 Resumo de Programação Estruturada
Regra 2 Substituição de qualquer retângulo por dois retângulos em seqüência Regra 1 Início a partir do fluxograma mais simples Regra 2 Regra 2 Regra 2

34 4.12 Resumo de Programação Estruturada
Regra 3 Substituição de qualquer retângulo por uma estrutura de controle Regra 3 Regra 3 Regra 3

35 4.12 Resumo de Programação Estruturada
Formas de controle de programas Seqüência  Manipulação automática pelo compilador Seleção  if, if/else ou switch Repetição  while, do/while ou for Possibilidade de combinação  Apenas de duas maneiras Aninhamento (regra 3) Alinhamento (regra 2)

36 4.12 Resumo de Programação Estruturada
Formas de controle de programas Alternativas, condicionais  Possibilidade de reescrita como uma instrução if / else Repetição  Possibilidade de reescrita como uma instrução while

37 José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria
Ulrich Schiel UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO


Carregar ppt "Introdução à Programação"

Apresentações semelhantes


Anúncios Google