3. Linguagem de Programação C

Documentos relacionados
LINGUAGEM C: COMANDOS DE REPETIÇÃO

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Linguagem C estruturas de repetição

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias

Algoritmos e Programação

Introdução à Programação. Estruturas de Repetição

C Comandos de Controle

Aula 7 Oficina de Programação Estruturas de Repetição no C. Profa. Elaine Faria UFU

Comando Switch. Embora a escada if else-if possa executar testes de várias maneiras, ela não é de maneira nenhuma elegante.

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Linguagem C (repetição)

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

Linguagens de Programação I

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

Linguagem C (estruturas condicionais)

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

Linguagem C. Prof.ª Márcia Jani Cícero

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Introdução à Ciência da Computação

Capítulo 8. Estruturas de Controle no Nível de Sentença

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

Variáveis primitivas e Controle de fluxo

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Seleção Múltipla Laços (while, do-while, for) AULA 05

ESTRUTURAS DE CONTROLE

Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

Algoritmos e Programação

Introdução à Linguagem C

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Estruturas de Repetição

Programação científica C++

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Métodos Computacionais. Comandos Condicionais e de Repetição em C

Revisão C++ - Parte 1

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Estruturas de repetição. Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C.

3. Linguagem de Programação C

Programação: Vetores

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Estruturas de Decisão. Adaptado de Deise Saccol

Estruturas de Repetição. for() while() do-while() break; continue;

LP II Estrutura de Dados

Sintaxe Básica de Java Parte 2

Laços de repetição for, while, do-while

Prof. A. G. Silva. 28 de agosto de Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de / 1

ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO

Modulo 4: while do while (limites de variáveis)

MC-102 Aula 06 Comandos Repetitivos

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Vetores. e o programa deverá ler os valores separadamente:

Programação Estruturada

Lógica de Programação I

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Exercício... Para começar... Resolução... Para começar... Para começar...

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Seleção. Prof. César Melo

Estrutura do programa

Programação Estruturada

Introdução a programação Comandos de repetição

Transcrição:

Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1

Principais Tópicos 3.4. Estruturas de Controle 3.4.1. Comandos 3.4.2. Estruturas de Decisão 3.4.2.1. Comando if-else 3.4.2.2. Comando switch 3.4.3. Estruturas de Repetição 3.4.3.1. Comando while 3.4.3.2. Comando do-while 3.4.3.3. Comando for 2

3.4.1. Comandos Programas C são compostos por funções Funções são formadas por comandos Comandos em C podem ser: Comandos simples Realizam alguma ação Comandos de controle Afetam a maneira como outros comandos são executados 3

3.4.1. Comandos Maioria dos comandos em C são comandos simples Expressão seguida de ponto e vírgula (expressão; ) Pode envolver: Atribuição Chamada de função Incremento (decremento) de variável 4

3.4.1. Comandos Comandos de controle podem ser aplicados a uma seqüência de comandos simples (bloco)... {... }... comando 1; comando 2;... comando n; Bloco 5

3.4.1. Comandos Bloco de comandos Tratado por comandos de controle como se fossem um único comando Também são chamados de comandos compostos C permite a declaração de variáveis antes dos comandos de qualquer bloco Tabulação interior de um bloco faz parte de um bom estilo de programação 6

3.4.1. Comandos Estruturas de Controle São comandos que afetam a maneira como outros comandos são executados Podem ser: De decisão» Condicionam a execução de um comando ao valor de uma expressão De repetição» Permite a execução de um comando repetidas vezes 7

3.4.2. Estruturas de Decisão São estruturas de controle condicionais Muitas vezes, a avaliação de uma condição define a execução ou não de um comando (execução condicional) A maneira mais fácil de fazer isso é através do comando If if (condicao) comando; if (condicao) comando1 ; else comando2; Comandos podem ser simples ou compostos (bloco) 8

3.4.2.1. Comando if-else /* Programa: Comandos em bloco*/ # include <stdio.h> main ( ) { int num; } printf ( Este programa diz se um numero eh par ou impar \n \n ); printf ( Entre com um numero inteiro: ); scanf( %d, &num) if (num % 2 == 0){ printf ( O número %d eh par, num); printf ( porque o resto de n / 2 é igual a zero \n ); } else{ printf ( O número %d eh impar, num); printf ( porque o resto de n / 2 é diferente de zero \n ); } 9

3.4.2.1. Comando if-else Operadores lógicos podem ser utilizados na equação de condição Exemplos:... if ( (a>5) && (b==-1) ) {...... if ( (a>1)!(b==2) ) {... 10

3.4.2.1. Comando if-else Comando if Algumas aplicações precisam de estruturas de decisão mais complicadas Por exemplo, quando existem mais que duas possibilidades Uma alternativa é utilizar uma cadeia de comandos if if (condicao1) comando1; else if (condicao2) comando2; else if (condicao3) comando3;... 11

3.4.2.1. Comando if-else... int pontosteste; char nota;... if (pontosteste >= 90) nota = 'A'; else if (pontosteste >= 80) nota = 'B'; else if (pontosteste >= 70) nota = 'C'; else if (pontosteste >= 60) nota = 'D'; else nota = 'F';... Apenas um else Se um else if for verdadeiro, os comandos else if e else abaixo dele não são avaliados Outra alternativa: utilizar o comando switch 12

3.4.2.1. Comando if-else Exercício3.4.1. Exercício3.4.2. 13

3.4.2.2. Comando switch Executa comandos condicionalmente Baseado no valor de alguma expressão switch (expressao) { case constante-1: comando; break; case constante-2: comando; break;... case constante-n: comando; break; default: comando; break; } 14

3.4.2.2. Comando switch... int mes;... switch (mes) { case 1: printf("january"); break; case 2: printf("february"); break; case 3: printf("march"); break; case 4: printf("april"); break; case 5: printf("may"); break; case 6: printf("june"); break; case 7: printf("july"); break; case 8: printf("august"); break; case 9: printf("september"); break; case 10: printf("october"); break; case 11: printf("november"); break; case 12: printf("december"); break; }... 15

3.4.2.2. Comando switch Equivalente a um comando if-else... int mes;... if (mes == 1) { printf("january"); } else if (mes == 2) { printf("february");... 16

3.4.2.2. Comando switch Qual comando usar? if-else ou switch? Decisão do programador Baseada em facilidade de leitura e outros fatores Cada comando case deve ser único Valor fornecido para cada comando case Deve ser do mesmo tipo do valor retornado pela expressão do comando switch Deve ser do tipo char ou int 17

3.4.2.2. Comando switch Observações Comando break Faz com que o programa saia de dentro do comando switch e continue no próximo comando Sem ele, todos os comandos case seriam executados Em algumas situações, pode ser interessante executar mais de um comando case 18

3.4.2.2. Comando switch... int mes, ano; int numdias;... switch (mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: numdias = 31; break; case 4: case 6: case 9: case 11: numdias = 30; break; case 2: if ( ((ano % 4 == 0) &&!(ano % 100 == 0)) (ano % 400 == 0) ) numdias = 29; else numdias = 28; break; }... 19

3.4.2.2. Comando switch Comando default pode ser usado para lidar com os valores que não foram definidos explicitamente nos comandos case Cláusula default é selecionada quando nenhum dos rótulos casa com o valor da expressão É opcional (mas é uma boa prática de programação) default: Pode incluir uma mensagem de erro» Ex.: valor de rótulo não esperado 20

3.4.2.2. Comando switch... int mes;... switch (mes) { case 1: printf("january"); break; case 2: printf("february"); break; case 3: printf("march"); break; case 4: printf("april"); break; case 5: printf("may"); break; case 6: printf("june"); break; case 7: printf("july"); break; case 8: printf("august"); break; case 9: printf("september"); break; case 10: printf("october"); break; case 11: printf("november"); break; case 12: printf("december"); break; default: printf( Opa, este nao eh um mes valido!"); }... 21

3.4.3. Comandos de Repetição Permitem a execução de partes de um programa mais de uma vez São comandos iterativos da linguagem C Comando while Comando do while Comando for 22

3.4.3.1. Comando while Estrutura de repetição mais simples Executa um comando repetidamente até uma condição se tornar falsa while (expressão condicional) comando; Comandos podem ser simples ou compostos (bloco) 23

3.4.3.1. Comando while Teste condicional é executado antes de cada ciclo do loop Se o primeiro teste resultar no valor 0 (Falso), o corpo do loop não é executado f Condição v Seqüência de Comandos 24

3.4.3.1. Comando while Exercício 3.4.3. O que o programa abaixo imprime na tela? /* Programa: Comando while*/ # include <stdio.h> main() { int i=0, a=0, n=5; } while ( i<=n ) { a+=i; i=i+1; } printf ( a=%d \n",a); Exercício 3.4.4. Faça o fluxograma do programa acima? 25

3.4.3.1. Comando while Utilizado onde existe uma condição de teste que possa ser aplicada antes da execução do corpo Vários problemas de programação não se encaixam na estrutura do comando while As vezes o teste seria mais natural em algum lugar no meio do loop Ex.: leitura de dados do usuário até o recebimento de um valor especial (sentinela) 26

3.4.3.1. Comando while Loop baseado em sentinela Ler um valor Se o valor é igual ao sentinela, sair do loop Senão, executar o processamento requerido por este valor Como sair do loop quando um dado valor for lido? Problema do loop e meio Estratégia 1: Por um comando break após a leitura Estratégia 2: Copiar parte do código para fora do loop 27

3.4.3.2. Comando do-while Executa um comando repetidamente até uma condição se tornar falsa do { comandos; } while (expressao condicional); Semelhante ao comando while Exceto que a expressão é avaliada no final 28

3.4.3.2. Comando do-while Seqüência de Comandos f Condição v 29

3.4.3.2. Comando do-while Exemplo... int c=1;... do {... scanf ( %d, &c); } while (c!= -1);... 30

3.4.3.3. Comando for O comando for é um comando de repetição determinado pelas expressões: inicial teste passo for (inicial; teste; passo) { comandos; } 31

3.4.3.3. Comando for Inicial Expressão que indica como o loop do comando for deve ser inicializado Executado uma única vez No início do loop Define o valor inicial da variável de indexação (contador) Ex.: for (i = 0;... for (i = -7;... 32

3.4.3.3. Comando for Teste Expressão que indica quando o loop do comando for deve parar Funciona como a condição de teste do while Expressão é avaliada no topo de cada interação do loop Compara valor do contador com um valor final Quando o resultado da avaliação é FALSO, o loop termina Enquanto teste é VERDADEIRO, o loop continua Ex.: for (i = 0; (i < n); i++){ 33

3.4.3.3. Comando for Passo Expressão chamada a cada interação do loop para atualizar o valor do contador Indica quanto muda o valor da variável de indexação de um ciclo para outro Especificações de passo mais comuns index++, index--, index +=n 34

3.4.3.3. Comando for Inicial f Teste v Seqüência de Comandos Passo 35

3.4.3.3. Comando for for (inicial; teste; passo) { comandos; } é equivalente a: inicial; while (teste) { comandos; passo; } 36

3.4.3.3. Comando for Exercício 3.4.5. O que o programa abaixo imprime na tela? /* Programa: Comando for*/ # include <stdio.h> main ( ) { int t; for (t = 5; t >= 0; t --) { printf ( %d \n, t); } printf ( fim! \n ); } Exercício 3.4.6. Faça o fluxograma do programa acima? 37

3.4.3.3. Comando for Expressões inicial, teste e passo são opcionais Os separadores (;) devem aparecer Falta de valor inicial não é feita nenhuma inicialização do indexador Falta de condição de teste ela é assumida como sempre VERDADEIRA Falta de passo indexador não é alterado entre ciclos do loop Mas pode ser alterado dentro do ciclo 38

Exercícios Exercício 3.4.7. Reescreva os trechos de programas abaixo usando o comando for... x = 14; while ( x >= 3){ printf ( %d\n, x); x - = 5; }...... y = 70; while ( y <= 90){ printf ( %d\n, y); y += 5; }... 39

Exercícios Exercício 3.4.8. Escreva um programa em C que leia os valores de n números reais e imprima os valores da soma e da média aritmética destes números. Exercício 3.4.9. Escreva um programa em C que imprima os L primeiros termos da seqüência de Fibonacci. 40