Algoritmos e Técnicas de Programação - Aula 04

819 visualizações

Publicada em

Algoritmos e Técnicas de Programação - Anhanguera
AULA 04 - ESTRUTURAS DE CONTROLE

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
819
No SlideShare
0
A partir de incorporações
0
Número de incorporações
86
Ações
Compartilhamentos
0
Downloads
79
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Algoritmos e Técnicas de Programação - Aula 04

  1. 1. ANHANGUERA – 2016.2 ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO AULA 04 – ESTRUTURAS DE CONTROLE Prof. Thomás da Costa thomascosta@aedu.com
  2. 2. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE CONTROLE ESTRUTURAS DE CONTROLE
  3. 3. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE CONTROLE Condicionais O que é?: É uma instrução ou comando dentro de uma programa em C, que determina a veracidade de uma determinada condição. Essa condição normalmente é formada por uma ou mais proposições simples.
  4. 4. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE CONTROLE Condicionais Condicional IF – ELSE: A primeira instrução condicional que vamos estudar é o comando if. Neste comando, o primeiro bloco determinada que a condição é verdadeira. O segundo bloco que começa pela instrução else, determina que a condição é falsa. if (condição) <resultado verdadeiro> else <resultado falso>
  5. 5. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE CONTROLE Condicionais Exemplo: if (media >= 6) printf("Aluno aprovado !!!"); else printf("Aluno reprovado !!!"); Condição é verdadeira. Condição é falsa.
  6. 6. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> int main() { double nota_b1; double nota_b2; double media; printf("Digite a nota da B1:"); scanf("%lf", &nota_b1); printf("Digite a nota da B2:"); scanf("%lf", &nota_b2); media = ((nota_b1 * 0.4) + (nota_b2 * 0.6)); printf("Média: %.2fn", media); if (media >= 6) printf("Aluno aprovado !!!"); else printf("Aluno reprovado !!!"); }
  7. 7. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE CONTROLE Condicionais Importante: Em um bloco condicional if, quando as instruções seguintes ao if não estão dentro de chaves, somente a linha abaixo da condição será executada. Caso desejamos que o bloco condicional execute mais de uma linha, devemos incluir as chaves, criando um novo escopo. Isso é válido também para instrução else. if (condição) { <instrução 1>; <instrução 2>; }
  8. 8. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE CONTROLE Condicionais Exemplo: if (numero >=0 && numero <= 10) { printf("Número válido !!!n"); printf("Número digitado: %dn", numero); } else printf("Número inválido !!!n"); As chaves colocam as linhas dentro de um escopo. Sem chaves somente a linha seguinte é executada.
  9. 9. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <locale.h> #include <conio.h> int main() { int numero; setlocale(LC_ALL, "Portuguese"); printf("Digite um número entre 0 e 10: "); scanf("%d", &numero); if (numero >=0 && numero <= 10) { printf("Número válido !!!n"); printf("Número digitado: %dn", numero); } else printf("Número inválido !!!n"); printf("Bye !!!n"); getch(); }
  10. 10. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Condicionais Operadores: ESTRUTURAS DE CONTROLE Negação Conjunção > Maior >= Maior igual < Menor <= Menor igual != Diferente de == Igual = Atribuição de valores
  11. 11. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Condicionais Proposições: No próximo exemplo, vamos estudar um problema com condições mais complexas. Essas condições, possuem as mesmas regras das expressões proposicionais. ESTRUTURAS DE CONTROLE Negação Conjunção Disjunção ! && || • A ordem de resolução dos conectivos segue a tabela abaixo. • Quando existir uma expressão com parênteses, eles deverão ser resolvidos primeiro.
  12. 12. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <stdbool.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); bool p; bool q; bool r; p = true; q = false; r = true; if (((q && r) || (!p && r)) && r) printf("Verdadeiro !!!n"); else printf("Falso !!!n"); printf("Resultado da expressão: %dn", ((q && r) || (!p && r)) && r); }
  13. 13. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Condicionais Condicional IF – ELSE IF: ESTRUTURAS DE CONTROLE Em determinadas situações de um programa, pode existir mais de uma condição verdadeira em um comando if. Para resolver este problema, utilizamos o comando else if que verifica a veracidade de outras condições. Caso nenhuma das condições seja verdadeira, a condicional entra no bloco else. if (condição 1) <resultado verdadeiro> else if (condição 2) <resultado verdadeiro> else <resultado falso>
  14. 14. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Condicionais Exemplo: ESTRUTURAS DE CONTROLE if (opcao_menu == 1) printf("Opção de incluir aluno selecionado"); else if (opcao_menu == 2) printf("Opção de listar aluno selecionado"); else if (opcao_menu == 3) printf("Saindo !!!"); else printf("Opção inválida !!!"); Condições verdadeiras. Condição falsa.
  15. 15. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); int opcao_menu; printf("Digite uma opçãon"); printf("1 - Incluir alunon"); printf("2 - Listar alunon"); printf("3 - Sairn"); scanf("%d", &opcao_menu); if (opcao_menu == 1) printf("Opção de incluir aluno selecionado"); else if (opcao_menu == 2) printf("Opção de listar aluno selecionado"); else if (opcao_menu == 3) printf("Saindo !!!"); else printf("Opção inválida !!!"); }
  16. 16. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Condicionais ESTRUTURAS DE CONTROLE Condicional SWITCH: Vamos estudar um novo comando condicional: o switch. A instrução switch é um comando que valida a informação de uma determinada variável. Normalmente, a variável utilizada para verificação de um valor é do tipo int. Não conseguimos validar proposições mais complexas em um comando switch. switch (variável) { case <constante 1>: { <instrução 1>; break; } ... default: { <nenhuma das opções anteriores>; break; } }
  17. 17. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Condicionais ESTRUTURAS DE CONTROLE Exemplo: switch (opcao_menu) { case 1: { printf("Opção de incluir aluno selecionado"); break; } case 2: { printf("Opção de listar aluno selecionado"); break; } ... default: { printf("Opção inválida !!!"); break; } } Variável condicional. Condições verdadeiras. Condição falsa.
  18. 18. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); int opcao_menu; printf("Digite uma opçãon"); printf("1 - Incluir alunon"); printf("2 - Listar alunon"); printf("3 - Sairn"); scanf("%d", &opcao_menu); switch (opcao_menu) { case 1: { printf("Opção de incluir aluno selecionado"); break; } case 2: { printf("Opção de listar aluno selecionado"); break; } case 3: { printf("Saindo !!!"); break; } default: { printf("Opção inválida !!!"); break; } } }
  19. 19. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Laços ESTRUTURAS DE CONTROLE O que é?: São comandos utilizados para repetir um determinado conjunto de instruções até que uma determinada condição seja satisfeita. Vamos estudar os 3 tipos de laços encontrados em programação.
  20. 20. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Laços ESTRUTURAS DE CONTROLE Laço - WHILE: A primeira instrução de laço que vamos estudar é o while. Esta instrução de laço, executa um bloco de comando enquanto uma condição for verdadeira. Além disso, o comando while pode ser ou não executado caso a condição não seja verdadeira inicialmente. while (condição) { <instrução 1>; <instrução 2>; }
  21. 21. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Laços ESTRUTURAS DE CONTROLE Exemplo: int opcao_menu = 0; while (opcao_menu != 3) { system("cls"); printf("Digite uma opçãon"); printf("1 - Incluir alunon"); printf("2 - Listar alunon"); printf("3 - Sairn"); ... } Condição. Bloco de comando que vai ser repetir enquanto a condição for verdadeira.
  22. 22. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <locale.h> #include <stdlib.h> #include <conio.h> int main() { setlocale(LC_ALL, "Portuguese"); int opcao_menu = 0; while (opcao_menu != 3) { system("cls"); printf("Digite uma opçãon"); printf("1 - Incluir alunon"); printf("2 - Listar alunon"); printf("3 - Sairn"); scanf("%d", &opcao_menu); switch (opcao_menu) { case 1: { printf("Opção de incluir aluno selecionado.n"); getch(); break; } case 2: { printf("Opção de listar aluno selecionado.n"); getch(); break; } case 3: { printf("Saindo !!!n"); getch(); break; } default: { printf("Opção inválida !!!n"); getch(); break; } } } }
  23. 23. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Laços ESTRUTURAS DE CONTROLE Laço DO – WHILE: A instrução do – while tem a mesma semelhança que a instrução while. Neste tipo de laço, o bloco de comando é executado pelo menos uma vez, antes de validar a condição do laço. do { <instrução 1>; <instrução 2>; } while (condição);
  24. 24. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <locale.h> #include <stdlib.h> #include <conio.h> int main() { setlocale(LC_ALL, "Portuguese"); int opcao_menu; do { system("cls"); printf("Digite uma opçãon"); printf("1 - Incluir alunon"); printf("2 - Listar alunon"); printf("3 - Sairn"); scanf("%d", &opcao_menu); switch (opcao_menu) { case 1: { printf("Opção de incluir aluno selecionado.n"); getch(); break; } case 2: { printf("Opção de listar aluno selecionado.n"); getch(); break; } case 3: { printf("Saindo !!!n"); getch(); break; } default: { printf("Opção inválida !!!n"); getch(); break; } } } while (opcao_menu != 3); } Este bloco é executado pelo menos uma vez, independente da condição, pois a mesma é validada depois.
  25. 25. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Operadores ESTRUTURAS DE CONTROLE Detalhes: Antes de estudar o próximo laço, vamos conhecer alguns operadores em C. Operador Conjunção ++ Incremento -- Decremento += Atribuição de soma -= Atribuição de subtração *= Atribuição de multiplicação /= Atribuição de divisão
  26. 26. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); int a = 1; int b = 1; int c = 1; printf("Variável: %dn", a); printf("Pós-incremento: %dn", a++); printf("Variável: %dnn", a); printf("Variável: %dn", a); printf("Pré-incremento: %dn", ++a); printf("Variável: %dnn", a); printf("%dn", b--); printf("%dn", --b); c += 1; printf("%dn", c); c -= 1; printf("%dn", c); c *= 2; printf("%dn", c); c /= 2; printf("%dn", c); } Operadores de Pós-incremento: Valor é usado antes de ser incrementado. Operadores de Pré-incremento: Valor é incrementado e depois o novo valor é utilizado.
  27. 27. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Laços ESTRUTURAS DE CONTROLE Laços FOR: No laço for, a repetição de um bloco de comando, acontece a partir de um início determinado, uma condição final e uma operação de incremento e decremento, indicando se o laço é crescente ou decrescente. Utilizamos o laço for principalmente quando temos uma faixa entre dois valores e precisamos efetuar operações de repetições. for (início;condição;incremento/decremento) { <instrução 1>; <instrução 2>; }
  28. 28. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> int main() { int i; for (i=0;i<=10;i++) { printf("Contando %dn", i); } } Inicio do laço. Condição. Incremento ou decremento: indicando se o laço será crescente ou decrescente.
  29. 29. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <locale.h> int main() { int i; int inicio, fim; setlocale(LC_ALL, "Portuguese"); printf("Digite um número inicial:"); scanf("%d", &inicio); printf("Digite um número final:"); scanf("%d", &fim); for (i=inicio;i<=fim;i++) { printf("Contando %dn", i); } }
  30. 30. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <locale.h> int main() { int i; int inicio, fim; setlocale(LC_ALL, "Portuguese"); printf("Digite um número inicial:"); scanf("%d", &inicio); printf("Digite um número final:"); scanf("%d", &fim); for (i=inicio;i<=fim;i++) { if ((i % 2) == 0) printf("Número %d par !!!n", i); else printf("Número %d impar !!!n", i); } }
  31. 31. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Escopo Não esquecer !!!: Em uma condicional ou em um laço, somente a instrução seguinte será executada. As instruções devem ser colocadas dentro de blocos com chaves, para que um conjunto de instruções seja executado. ESTRUTURAS DE CONTROLE Chaves !!!
  32. 32. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Funções O que é?: São rotinas que tem como objetivo, executar trechos de códigos de forma modular, melhorando a organização do programa e evitando repetição de código. As funções são reutilizáveis dentro de um programa. ESTRUTURAS DE CONTROLE
  33. 33. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE CONTROLE Funções Estrutura de uma função: Retorno da função. Parâmetros da função. Corpo da função. Escopo de início e fim da função. double somar(double x, double y) { double resultado = x + y; return resultado; } Nome da função.
  34. 34. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <locale.h> double somar(double x, double y); int main() { setlocale(LC_ALL, "Portuguese"); double valor = somar(10, 10); printf("%lf", valor); } double somar(double x, double y) { double resultado = x + y; return resultado; } Protótipo da função. Chamando a função “somar” passando os parâmetros 10 e 10. Retornando o valor para a variável “valor”.
  35. 35. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE CONTROLE Funções Estrutura de uma função: • Tipos de retorno da função: • double, float, int, char, void e outros tipos • Parâmetros da função • Cada parâmetro é composto pelo tipo, nome e separados por virgulas. • Retorno da função: • Quando uma função deve retornar um valor, devemos usar a palavra reservada return seguido de um valor, variável ou operação do mesmo tipo de retorno. • Corpo da função: • Código fonte com a funcionalidade que a função deve executar. • Protótipo: • As funções possuem protótipos para definir sua estrutura.
  36. 36. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa #include <stdio.h> #include <locale.h> void ola_mundo(); int main() { setlocale(LC_ALL, "Portuguese"); ola_mundo(); } void ola_mundo() { printf("Olá Mundo !!!"); } void não retornar nenhum valor para a função. Não existe a declaração da variável do tipo void.
  37. 37. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Resumo • As instruções condicionais são utilizadas para verificar a veracidade de uma determinada condição proposicional. • Os laços executam um bloco de instruções repetidas vezes até uma condição seja satisfeita. • Existem os operadores condicionais, incremento, decremento e de atribuição matemática. • Funções são blocos de instruções reutilizáveis dentro de um programa. ESTRUTURAS DE CONTROLE
  38. 38. Obrigado !!! ANHANGUERA – 2016.2

×