Aula 6 - Estruturas de Controle

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Programação em Java Prof. Maurício Braga
INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL
Introdução à Programação Engenharia da Computação
Estruturas de Controle
Programação em Java Prof. Maurício Braga
Estruturas de Repetição
Linguagem C Marco Reis.
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE I Prof. Thiago Pereira Rique
Introdução à Computação - Jorge Macêdo
Estruturas de repetição
Introdução à Programação
Introdução à Lógica de Programação (cont.)
Linguagem C Estruturas de Controle de Fluxos
Linguagem C LPG-I – Estruturas de Repetição Prof. Flavio Marcello
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
LINGUAGEM ESTRUTURADA TURBO C
Universidade Federal do Espírito Santo Programação II Professora: Norminda Luiza.
Rodrigo de Toledo (original: Claudio Esperança)
Lógica de Programação Módulo II
Estruturas de Repetição
Linguagem C Estruturas de Seleção.
Estruturas de Decisão Permitir testes para decidir acções alternativas: if if - else switch (?:) Operador Condicional MF.
Revisão da Linguagem C.
Estrutura de decisão e repetição em JAVA
O Portal do Estudante de Computação
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Professor: Juliano Lucas Gonçalves
Linguagem de Programação II Parte IV
Linguagem de Programação I Parte II
Linguagem de Programação I Parte III
FTIN Formação Técnica em Informática
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
PROGRAMAÇÃO I UNIDADE 4.
Estruturas de Dados Módulo 3 – Controle de Fluxo
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Operadores Relacionais, Lógicos e comandos de condição
Programação de Computadores
Introdução à linguagem C
Instituto Federal de Santa Catarina
Vetores e Matrizes Ameliara Freire
Algoritmo e Programação
Linguagem e Ambiente Scratch
APRENDER A APRENDER deve ser nossa meta. Comandos de Controle de Programa Comandos de Seleção Prof. Me. Jeime Nunes.
Linguagem de Programação JAVA
Algoritmos e Estruturas de Dados
Introdução a Algoritmos
Anderson Moreira Ling. de Programação OO – Revisão Anderson L. S. Moreira Instituto Federal de Educação Tecnológica de Pernambuco.
Algoritmos e Estrutura de Dados I
Introdução à Linguagem C
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
Wellington Felix.  Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix  C++ é uma extensão da.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
PCI- Estrutura Condicional Profa. Mercedes Gonzales Márquez.
Introdução à Programação
Comando de Seleção switch
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle.
Introdução a Programação
Profº Antonio Carlos Marcelino de Paula
Profa. Maria Augusta Constante Puget
Profa. Maria Augusta Constante Puget
Linguagem de Programação 11 Estruturas de Decisão e Repetição. Prof. Luiz José Hoffmann Filho
1 Estruturas de Controle Algoritmos Algoritmos –Série de ações em uma ordem específica As ações executadas Ordem na qual as ações são executadas.
ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1.
1Unidade 04 – Estruturas de Repetição Algoritmos e Linguagens de Programação Estruturas de Repetição Prof.: Guilherme Baião S. Silva
IFRN Técnico em Informática para Internet Estruturas Condicionais Prof. Gilbert Azevedo.
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Grupos de Slides No 5. Prof. SIMÃO
Algoritmos Grupos de Slides No 7. Prof. SIMÃO Estrutura de Repetição “para - passo”” for Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto.
Transcrição da apresentação:

Aula 6 - Estruturas de Controle Ameliara Freire ameliara.fjn@gmail.com

Tipos primitivos Variaveis, constantes, leitura e escrita ainda não são suficientes para formar uma linguagem completa para descricao de programas. Cada programa/algoritmo tem um fluxo de execucao que pode ser definido usando termos especificos de uma linguagem Estrutura sequencial Estrutura de selecao Estrutura de repeticao

Estrutura sequencial Impõe uma ordem de cima para baixo e da esquerda para a direita na execucao de um algoritmo. As acoes são separadas por “;” Formato geral: //declaracao de variaveis //corpo do algoritmo acao 1; acao 2; ...

Estruturas de selecao/decisao Permite o uso de condicoes para escolher entre execucoes de diferentes blocos Condicoes são expressoes lógicas relacionais que, quando avaliadas, produzem valor lógico (booleano) Comandos: if if – else switch - case

if-else Forma geral if(condicao){ //sequencia de comandos se verdadeiro }else{ // o else é opcional //sequencia de comandos se falso } if(media > 7.0){ printf(“Aprovado”); }else{ printf(“Final ou reprovado”); }

Fluxo do if-else condicao if (condicao) { C1; C2; ... Cn; }else { D1; Dm; } D1; D2; ... Dn; F C1; C2; ... Cn; V

Exercicio Altere a funcao que lê as notas do aluno e imprime a média para que a mensagem impressa se comporte da seguinte maneira: Se a média foi maior ou igual a 7.0 a mensagem deve ser “Aprovado”. Caso contrário a mensagem deve ser “Estude mais para a final”.

Exercicio O que o programa abaixo faz? #include <stdio.h> main(){ int a,b; printf(“Digite 2 números: “); scanf(“%d %d”,&a,&b); if (b){ printf(“%f”,a/b); }else { printf(“Não posso fazer a divisao”); }

Variacoes do if-else if(condicao 1){ if(condicao 2){ if(condicao 1){ ... } if(condicao 1){ C1 }else if (condicao 2){ C2 }else if(condicao 3){ C3 }else{ C4 } if(condicao 1){ ... } if(condicao 2){ if(condicao 3){

Importância da indentação Cada código que estiver dentro de um bloco deve estar um nível a mais de indentação à direita do bloco mais externo. Indentar o código é FUNDAMENTAL para compreensão do escopo de código (identificar onde começa e onde termina). if(condicao 1){ if(condicao 2){ if(condicao 3){ ... }

Simplificando selecoes Como simplificar a seguinte selecao aninhada? if (condicao1) { if (condicao2) { if (condicao3) { if (condicao4) { W; } if (condicao1 && condicao2 && condicao3 && condicao4){ W; }

Simplificando selecoes if (X == V1) { C1; } if (X == V2) { C2; if (X == V3) { C3; if (X == V4) { C4; if (X == V1) { C1; }else if (X == V2) { C2; }else if (X == V3) { C3; }else if (X == V4) { C4; } Como diminuir o numero de testes? Qual a sequencia de comparacoes para atingir C4?

Análise de fluxo Que comandos são executados quando A=B=V e C=F? int A,B,C; if (A != 0){ C1; }else{ if (B != 0){ if (C != 0){ C2; C3; C4; } C5; C6;

Análise de fluxo Que comandos são executados quando A=B=V e C=F? { int A,B,C; if (A != 0){ C1; }else{ if (B != 0){ if (C != 0){ C2; C3; C4; } C5; C6;

Análise de fluxo Que comandos são executados quando A=C=F e B=V? { int A,B,C; if (A != 0){ C1; }else{ if (B != 0){ if (C != 0){ C2; C3; C4; } C5; C6;

Análise de fluxo Que comandos são executados quando A=C=F e B=V? { int A,B,C; if (A != 0){ C1; }else{ if (B != 0){ if (C != 0){ C2; C3; C4; } C5; C6;

Análise de fluxo Que comandos são executados quando A=C=F e B=V? { int A,B,C; if (A != 0){ C1; }else{ if (B != 0){ if (C != 0){ C2; C3; C4; } C5; C6;

Análise de fluxo Que comandos são executados quando A=C=F e B=V? { int A,B,C; if (A != 0){ C1; }else{ if (B != 0){ if (C != 0){ C2; C3; C4; } C5; C6;

Exercício Escreva um programa que lê a idade de um usuario e em seguida diz se o usuário é ou não maior de idade. Escreva um programa que lê um número inteiro e diz se o número é par ou ímpar. Escreva um programa que lê tres numeros e em seguida imprime quantos deles são iguais. Escreva um programa que lê três número s inteiros e em seguida imprime os números em ordem crescente.

Switch-case Multipla escolha: quando se tem um conjunto de valores discretos a serem testados, onde cada valor corresponde a uma acao. Otimizacao das escolhas se-senao-se switch (<variável>) { case <valor 1>: <instruções>; [break;] case <valor 2> : < instruções>; ... [default:<instruções>;] } OBS: “ variável” deve ser int ou char; “break” serve para implementar escolha disjunta

Switch-case (exemplo) #include <stdio.h> int main ( ) { char op; float num1, num2;  printf(“Digite um número, um operador e um número:”); scanf (“ %f %c %f”, &num1, &op, &num2); switch (op) { case ‘+’: printf (“ = %f”, num1 + num2); break; case ‘-’: printf (“ = %f”, num1 - num2); default: printf (“ Operador inválido!”) } Escreva um programa C que receba 2 números e um caractere operador (+, -, * ou /) do teclado, realize a operação determinada entre eles e imprima na tela o resultado

Exercicio Escreva uma funcao que solicita o usuario digitar um numero de 1 à 7. Em seguida a funcao imprime uma mensagem de acordo com o numero digitado: 1 – “Voce pertence ao curso de Agronomia” 2 – “Voce pertence ao curso de Veterinária” 3 – “Voce pertence ao curso de Zootecnia” 4 – “Voce pertence ao curso de Pedagogia” 5 – “Voce pertence ao curso de Letras” 6 – “Voce pertence ao curso de Engenharia de Alimentos” 7 – “Voce pertence ao curso de CIENCIA DA COMPUTACAO!” Qualquer outro numero - “Voce nao pertence a curso algum da UAG”

Estruturas de repeticao Imagine um procedimento (algoritmo) pronto para calcular a média de um aluno. O que fazer para calcular a média de todos os alunos de uma turma?

Laços ou comandos de repeticao São construcoes que permitem descrever acoes repetitivas Também conhecido por loop. O numero de repeticoes pode ser indeterminado? O número de repeticoes pode ser infinito? Repeticao com numero de vezes indeterminado Laço com teste no inicio (while) Laço com teste no final (do-while) Repeticao com numero de vezes determinado Laço (for)

Repeticao com teste no início Antes de cada execucao dos comandos de uma repeticao, a condicao é testada condicao valida while (condicao) { C1; C2; ... Cn; } while comandos condicao invalida Segue o fluxo

Repeticao com teste no início Exemplos int i = 0; while (i < 10) { printf(“Valor de i: %d ”, i); i++; } int i = 0; while (i < 10) { printf(“Valor de i: %d ”, i); }

Exercicio Como seria um programa para calcular a média de 50 alunos da uma turma? Escreva um programa que calcula o produto de dois números lidos sem usar o operador de multiplicação (‘*’). Construa um algoritmo que fica lendo indefinidamente numeros positivos. Caso o numero lido seja igual a 0 o algoritmo pára de ler números e imprime a média dos números pares lidos anteriormente.

Exercicio-desafio Escreva um programa que lê um número e em seguida calcula e imprime seu fatorial.

Repeticao com teste no final Depois de cada execucao dos comandos de uma repeticao, a condicao é testada Os comandos são executados pelo menos uma vez do { C1; C2; ... Cn; }while (condicao); do comandos while condicao valida condicao invalida Segue o fluxo

Exercício Como ficaria o algoritmo para calcular a média dos 50 alunos com teste no final usando o comando do-while?

Repeticao fixa O numero de vezes da repeticao é determinado. Possui uma variavel de controle cujo valor varia de um valor inicial a um valor final, de acordo com um determinado passo A condicao de parada é o numero de vezes da repeticao.

Repeticao fixa Inicialização: Teste de Condição: Incremento: for(inicializacao;condicao;incremento ){ C1; ... Cn; } Inicialização: Expressão de atribuição. Sempre é executada uma única vez. Teste de Condição: Condição que controla a execução do laço. É sempre avaliada a cada execução. Se Verdadeiro continua a execução. Se falso pára a execução. Incremento: Define como a variável de controle será alterada. É sempre executada após a execução do corpo do laço.

Repeticao fixa i = 1 int i; for(i= 0;i < 10;i++){ printf(“%d”,i); } for(i= 0;i < 10;i=i+2){ printf(“%d”,i); } printf(“%d”,i); i = 11

Exercicio Como ficaria o algoritmo para calcular a media dos 50 alunos usando repeticao fixa? Escreva um algoritmo que lê 50 números inteiros e em seguida mostra a soma de todos os ímpares lidos. Altere o algoritmo anterior para que ele considere apenas a soma dos ímpares que estejam entre 100 e 200. Construa um algoritmo que leia um conjunto de 20 numeros inteiros e mostre qual foi o maior e o menor valor fornecido.

Comparacao entre repeticoes Lacos são equivalentes se (numero de vezes é conhecido){ usa-se o for }senao{ se (teste precisa ser feito no inicio){ usa-se while usa-se do-while }