LINGUAGEM C CONTROLE DE FLUXO

Documentos relacionados
Lógica de Programação I

COMANDOS DE CONTROLE DE FLUXO. Luís Charneca.

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.

Controle de Fluxo. Laços e Desvios incondicionais

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

3. Linguagem de Programação C

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

Controle de Fluxo Utilizando C

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

Controle de Fluxo. Laços e Desvios incondicionais

Estruturas de Repetição

C Comandos de Controle

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

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

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

Módulo 3 Controle de Fluxo

Linguagem C (estruturas condicionais)

Introdução à Programação SCC-121

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

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Introdução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

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

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Linguagem C (repetição)

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

C Comandos de Controle

CONTROLE DE FLUXO. Algoritmos e Programação. Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10

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

Linguagem C estruturas de repetição

Linguagens de Programação I

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Comandos de Controle do Programa

Estruturas de repetição

ICMC USP. 1.semestre/2011 SCC120 - ICC. Aula: Comandos em C. Profa. Roseli Ap. Francelin Romero

Linguagem de Programação C. Prof. Fabrício Olivetti de França

Modulo 3: Else, Case, For...

Estruturas de Controle em Linguagem C

Programação I Estruturas de Repetição

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

Entrada. Comando 1 Comando 2. Saída

Introdução à Programação I

Linguagem C Controle de Fluxo

Revisão C++ - Parte 1

Programação Estruturada Aula - Estruturas de Repetição

Cap. 3 Entrada e Saída e Controle de Fluxo

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

Algoritmos: Conceitos Fundamentais

Linguagem C. André Tavares da Silva.

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Programação I PRG Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral

Módulo 5. Instruções if e switch. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

Programação Orientada a Objetos

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

Estrutura do programa

Estruturas de Repetição

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO. Prof. Esp. Fabiano Taguchi

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

4. Constantes. Constantes pré-definidas

Linguagem de Programação C

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Introdução à Linguagem C

Programação científica C++

Estruturas de Repetição

TE091 Programação Orientada a Objetos Engenharia Elétrica

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA. ECT1203 Linguagem de Programação Turma Prof.

Controlo de Execução. K&R: Capitulo 3

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

Parte 1. Programação (linguagem C) Introdução Geral

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

Semana 2 Estruturas de Condição, Seleção e Repetição. Prof. Tiago Jesus de Souza

Apresentar os comandos de controle associados com as estruturas de repetição.

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

Programação Estruturada

Prof. A. G. Silva. 13 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de setembro de / 21

Comandos de decisão. Tiago Alves de Oliveira. Adaptado de slides das Profas. Patrícia Jaques, Mônica Py e Deise Sacol

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

Algoritmos e Técnicas de

Linguagem C Princípios Básicos (parte 1)

Variáveis primitivas e Controle de fluxo

Estruturas de Repetição

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

ALGORITMO I ESTRUTURA DE CONTROLE DECISÃO SE / CASO;

Aula 10 Comandos de Repetição

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Treinamento Olimpíada Brasileira de Informática

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Introdução à Programação

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

Estruturas de Decisão. Adaptado de Deise Saccol

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

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Estruturas de Repetição

O objetivo deste questionário é levá-lo a rever os fundamentos da linguagem C. Nomeadamente, a utilização de instruções de seleção e de repetição.

Linguagem de Programação

Linguagem C. Programação Estruturada. Estruturas de Controle. Prof. Luis Nícolas de Amorim Trigo

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

Estruturas de Decisão

Transcrição:

LINGUAGEM C CONTROLE DE FLUXO Introdução à Programação Prof. Cayo Fontana

SUMÁRIO Instruções Condicionais Simples Composta Seleção Instruções de Repetição Instruções de Desvio

INSTRUÇÕES CONDICIONAIS Praticamente todos os algoritmos, computacionais ou não, efetuam testes condicionais à todo o momento durante o processamento de suas informações. Na linguagem de programação C existem os seguintes tipos de instruções condicionais: Simples Composta Seleção Estes tipos serão detalhados nos slides seguintes

INSTRUÇÕES CONDICIONAIS SIMPLES As instruções condicionais simples e composta utilizam as instruções if / if else para condicionar um determinado fluxo do programa, ou seja; Controla a execução de um determinado bloco de código de acordo com a validade de uma expressão condicional: if (condicional) Estrutura: if (condicao) { }, onde // demais instruções e regras do programa A condicao define uma expressão lógica que será validada antes de execução do bloco de instruções, definido para a instrução if. Se verdadeiro o bloco é executado.

INSTRUÇÕES CONDICIONAIS SIMPLES if (condicional) Exemplo: int main() { int a = 40; int b = 50; if (a > b) printf( Expressão verdadeira!\n ); * return (0); } Caso haja apenas uma única instrução, dentro de uma instrução de controle, não torna-se obrigatório o uso dos delimitadores de bloco de código { }.

INSTRUÇÕES CONDICIONAIS SIMPLES if else (condicional) Estrutura: if (condicao) { // instruções e regras da condição válida em if else } else { // instruções e regras da condição inválida em if else }, onde A condicao define uma expressão lógica que será validada antes de execução do bloco de instruções, definido para a instrução if. Se verdadeiro o bloco em if é executado. Se falso, o bloco em else é executado.

INSTRUÇÕES CONDICIONAIS COMPOSTA if else (condicional) Instruções condicionais compostas possuem sua(s) condição(ões) formada(s) por expressões lógicas, sendo cada uma destas definidas por mais de um argumento lógico. Estrutura: if (condicao1 operador_lógico1 condicao2 operador_lógico2 operador_lógicon-1 condicaon) { // instruções e regras da condicao válida em if else } else { }, onde: // instruções e regras da condicao inválida em if else A condicao define um conjunto de argumentos lógicos formando uma expressão lógica, composta, encadeadas por operadores lógicos responsáveis por sua validação. Se verdadeiro o bloco em if é executado. Se falso, o bloco em else é executado.

INSTRUÇÕES CONDICIONAIS COMPOSTA if else (condicional) É possível ter várias expressões condicionais em um bloco de instruções if else: if (condicao1 operador_lógico1 condicao2) { } else if (condicao2 operador_lógico1 condicao3) { } else if (condicao4 operador_lógico2 condicao5) { } else { }

INSTRUÇÕES CONDICIONAIS EXEMPLOS Exemplo 1: Recebendo a idade de um usuário e verificando se o mesmo é maior ou menor de idade perante a constituição #include <stdio.h> int main() { int idade; printf("informe a sua idade: "); scanf("\n%d", &idade); if (idade >= 18) printf("você é maior de idade!\n"); else printf("você é menor de idade!\n"); return (0); }

INSTRUÇÕES CONDICIONAIS - SELEÇÃO switch case (seleção) Instruções de seleção permitem o processamento de um determinado bloco de instruções se um determinado valor do critério de seleção esteja disponível nos possíveis casos que a instrução switch case pode tratar. Caso nenhuma critério seja alcançado ocorre a execução do bloco de instruções contidos em default (padrão). É possível que o bloco para o evento padrão (default) não esteja definido em switch. Neste caso, nenhum bloco de instruções será executado.

INSTRUÇÕES CONDICIONAIS - SELEÇÃO switch case (seleção) Estrutura de um laço: switch (valor) { case 10: // instruções e regras que serão executadas caso o valor de valor seja 10 break; case 15: // instruções e regras que serão executadas caso o valor de valor seja 15 break; default: // instruções e regras que serão executadas caso o valor de valor não seja nenhum dos casos tratados por switch }

INSTRUÇÕES CONDICIONAIS - SELEÇÃO switch case (seleção) Exemplo: Verificando se um caractere é uma vogal ou uma consoante switch (caractere) { case a : printf( Vogal!\n"); break; case e : printf( Vogal!\n"); break; case i : printf( Vogal!\n"); break; case o : printf( Vogal!\n"); break; case u :

INSTRUÇÕES CONDICIONAIS - SELEÇÃO switch case (seleção) (cont...) printf( Vogal!\n"); break; default: printf( Consoante!\n"); }, O programa acima poderia ser reescrito da seguinte maneira: switch (caractere) { case a : case e : case i : case o : case u : printf( Vogal!\n"); break; default: printf( Consoante!\n");

INSTRUÇÕES DE REPETIÇÃO while / do while (laço) As instrução while e do while são instruções de laço que executam um determinado bloco de instruções de acordo com a validade de um determinado critério de condição. Geralmente, a utilização das instruções while / do while ocorrem quando a quantidade de vezes que o laço será executado é desconhecida, dependendo da validade de um critério de condição: O conhecimento da quantidade de vezes que o laço será executado, não invalida a utilização do while / do while. Entretanto, comumente utilizase a instrução for nestas situações;

INSTRUÇÕES DE REPETIÇÃO while (laço) Estrutura de um laço: while (condicao) { // instruções e regras da condicao válida em while }, onde: A condicao define uma expressão lógica que será verificada antes de cada execução do bloco de instruções, definido para a instrução while. PS: caso a expressão lógica apresente um resultado falso, logo na primeira verificação, o bloco de código definido em while não será executado.

INSTRUÇÕES DE REPETIÇÃO while (laço) Exemplo: int i = 20; while (i % 3!= 0) { } printf( %d\n, i); i--; O exemplo acima exibirá mensagens, com o valor de i, enquanto o módulo (resto) da divisão de i por 3 for diferente de 0 (valida e depois executa).

INSTRUÇÕES DE REPETIÇÃO do while (laço) Estrutura de um laço: do { // instruções e regras da condicao válida em do while } while (condicao);, onde: A condicao define uma expressão lógica que será verificada após cada execução do bloco de instruções, definido para a instrução while. PS: o bloco de código definido em while será executado, no mínimo, uma vez mesmo que a expressão lógica definida em condicao apresente um resultado falso logo na primeira verificação.

INSTRUÇÕES DE REPETIÇÃO do while (laço) Exemplo: int i = 20; do { printf( %d\n, i); i--; } while (i % 3!= 0); O exemplo acima exibirá mensagens de alerta, com o valor de i, enquanto o módulo (resto) da divisão de i por 3 for diferente de 0 (executa e depois valida).

INSTRUÇÕES DE REPETIÇÃO for (laço) Assim como as instruções while / do while, apresentadas anteriormente, instruções de laço executam um determinado bloco de instruções por n vezes. Geralmente, a utilização da instrução for ocorre quando a quantidade de vezes que o laço será executado é conhecida: Existe uma variável que controla o número de laços à serem executados; O desconhecimento da quantidade de vezes que o laço será executado, não invalida a utilização do for. Entretanto, comumente utiliza-se a instrução while nestas situações.

INSTRUÇÕES DE REPETIÇÃO for (laço) Estrutura de um laço: for (instrução1; instrução2; instrução3) { // instruções e regras de acordo com a condicao e critérios do for }, onde o processamento das instruções 1, 2 e 3 ocorre da seguinte maneira: instrução 1: Executada apenas uma vez, antes da primeira execução do laço; Utilizada por uma (ou um conjunto de) variável que controlará, quantitativamente, o número de laços à serem executados.

INSTRUÇÕES DE REPETIÇÃO for (laço) instrução 2: É o critério de condição do laço; Executada antes de cada execução do laço (n vezes). instrução 3: Efetua operações de atribução (incremento, decremento entre outras) em uma (ou um conjunto de) variável que controlará, quantitativamente, o número de laços à serem executados; Executada ao final de cada execução do laço.

INSTRUÇÕES DE REPETIÇÃO for (laço) Exemplo: int i; for (i = 0; i < 10; i++) { printf( %d\n, i); } O exemplo acima exibirá mensagens de alerta 10 vezes, contendo, em cada uma destas mensagens, valores de 0 a 9. O laço for permite muitas variações, objetivando flexibilizar sua aplicação. Algumas destas variações serão mostradas à seguir.

INSTRUÇÕES DE REPETIÇÃO for (laço) Exemplo: as variáveis i e j controlam o laço à seguir: int i, j; for (i = 0, j = 0; i < 10 && j < 35; i++, j += i) { } printf("i: %d, j: %d\n", i, j); O exemplo acima exibirá mensagens contendo os valores de i e j enquanto as condições i < 10 e (conjunção &&) j < 35 forem atendidas. Os valores das variavéis i e j são modificadas ao final de cada laço em i++, j += i.

INSTRUÇÕES DE DESVIO Instruções de desvio são utilizadas para alterar o atual curso de execução do programa em processamento. A linguagem C possui 4 tipos de instruções de desvio de fluxo: break; continue; goto; return;

INSTRUÇÕES DE DESVIO break A instrução break é, e somente é, utilizada dentro de blocos de código no contexto de instruções de laço (for, while, do while) ou dentro de uma instrução de seleção (switch case), sendo utilizada na(s) estrutura(s) de caso(s) (case). O uso do break interrompe (quebra) imediatamente o fluxo de informações dentro do bloco de códigos. Exemplo: for (i = 1; i <= 40; i++) { soma *= i; if (soma > 100) break; }, o laço finalizará quando alcançar uma das condições: ou i <= 40 ou soma > 100.

INSTRUÇÕES DE DESVIO continue A instrução continue é, e somente é, utilizada dentro de blocos de código no contexto de instruções de laço (for, while, do while). O uso do continue força para a próxima iteração do laço para o fluxo de informações dentro do bloco de códigos. Exemplo: for (i = 1; i <= 40; i++) { if (i < 10) continue; soma *= i; }, a operação soma *= i só ocorrerá quando a condição i < 10 for falsa.

INSTRUÇÕES DE DESVIO goto A instrução goto é, além das instruções condicionais, uma outra alternativa para controlar o fluxo de informações no código. O uso do goto sofreu rejeição, por longos anos, por parte da comunidade global de programadores. Entretanto, alguns especialistas e cientistas afirmam que seu uso de maneira adequada oferece melhor desempenho para o processamento em hardware Exemplo: laco_x: x++; if (x < 100) goto laco_x;

INSTRUÇÕES DE DESVIO return A instrução return é utilizada para que o fluxo de processamento em uma determinada função, retorne imediatamente do ponto de onde a função foi chamada. Se return possui algum valor associado, este valor é o valor de retorno da função. Caso contrário assume-se que valores inesperados (lixo) serão retornados. Alguns compiladores retornam o valor zero, mas não é aconselhável esperar por este comportamento. Exemplo: int somar(int x, int y) { return x + y; }