Lógica de Programação I

Documentos relacionados
Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Lógica de Programação I

Lógica de Programação I

Lógica de Programação I

Lógica de Programação I

MC102 Algoritmos e Programação de Computadores

Lógica de Programação I

Estruturas de Repetição

Linguagem C Estruturas de Repetição

ALGORITMOS I. Procedimentos e Funções

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

Estruturas de Repetição

Aula 14: Repetição (Parte 2)

Estruturas de repetição

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

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

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

INF1005: Programação 1. Repetições. 08/03/10 (c) Paula Rodrigues 1

MC-102 Aula 06 Comandos Repetitivos

Fundamentos de Programação 1

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Estruturas de Repetição

Aula 16: Laços aninhados e desvios

Linguagem C estruturas de repetição

Algoritmos e Programação

INF 1005 Programação I

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

Comandos de Repetição -Laços

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Aula 5 ESTRUTURAS DE REPETIÇÃO (WHILE)

Aula 15: Repetição (Parte 3)

Recursividade. Estrutura de Dados. Prof. Kleber Rezende

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

Fundamentos de Programação 1

Estruturas de Repetição

Capítulo 3: Repetições. Pontifícia Universidade Católica Departamento de Informática

3. Linguagem de Programação C

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

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

Controle de Fluxo. Laços e Desvios incondicionais

Linguagem C (repetição)

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

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.

Recursão David Déharbe

10 Comandos de repetição

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

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

Algoritmos e Programação

Aula 14: Estruturas de Seleção e Controle em C

controle de fluxo repetições iterativas

Programação de Computadores II. Cap. 4 Funções

Algoritmos e Programação

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

Controle de Fluxo Utilizando C

Introdução a Programação de Jogos

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

SCC Capítulo 2 Recursão

Estruturas de Repetição

Estruturas de Repetição

LP II Estrutura de Dados

LINGUAGEM C: COMANDOS DE REPETIÇÃO

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

SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos

Laboratório 3 Comandos de repetição while, do-while e for

Controle de Fluxo. Laços e Desvios incondicionais

Computação 2. Diego Addan Aula 3. Funções

Estruturas de Repetição

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

ESTRUTURAS DE REPETIÇÃO - PARTE 1

Introdução à Programação I

Módulo 3 Controle de Fluxo

Exercícios Repetição

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I. Aula 5

1ª Avaliação Oficial Noturno

PCI- Estrutura de Repetição II. Profa. Mercedes Gonzales Márquez

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Estruturas de Repetição. Estruturas de Repetição. Estruturas de Repetição. Estruturas de Repetição. Estruturas de Repetição Condicionais

Técnicas de Programação: Comandos de Controle de DEE UFPB

Estrutura de Programas e Tipos de Dados Simples

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

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

MC-102 Aula 07 Comandos Repetitivos

Algoritmos e Programação

Estruturas de seleção

Programação de Computadores II

Estrutura de Dados Conceitos Iniciais

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

UNIVERSIDADE DA BEIRA INTERIOR

Linguagem C. Linguagem artificial e formal usada para comunicar instruções ao computador. Proposta por Dennis Ritchie entre 1969 e 1973.

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

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

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

Transcrição:

Gilson de Souza Carvalho gaucho.gilson@hotmail.com 1

Comando Do/While Além do comando while, existem outras estruturas para implementar laços repetitivos. O comando Do/While funciona de forma similar ao comando while, exceto pelo fato de que a condição de controle só é testada após a execução do bloco de comandos, e não antes, como é o caso do comando while. 2

Vejamos sua sintaxe: faça <bloco de instruções> enquanto <valor booleano>; <continuação do algoritmo> 3

Assim, podemos utilizar o comando Do/While sempre que tivermos certeza de que o bloco de instruções será executado ao menos uma vez, sem a necessidade do teste na entrada do bloco. Vejamos um exemplo: Do um algoritmo que calcule a soma dos números ímpares entre 1 e um limite superior definido pelo usuário. 4

#include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(lc_all,"portuguese"); unsigned short int i, limite, s_impar; i = limite = s_impar = 0;... 5

... printf("informe o limite do intervalo: "); scanf("%d", &limite); } do { if (i % 2!= 0) s_impar += i; i ++; } while (i < limite); printf("soma dos Impares entre 1 e %d: %d \n", limite, s_impar); return 0; 6

7

EXERCICIO: 1. do uma multiplicação apenas por meio de somas (utilize o comando do/while). 2. do um algoritmo que determine if um numero é primo (utilize o comando do/while). 8

Comando for if analisarmos os exemplos de utilização de laços, perceberemos que a maioria deles tem comportamento similar. Uma situação inicial, definida antes do inicio do laço como uma *preparação para a sua entrada, um **teste de controle para a entrada/saída do bloco e uma ***instrução dentro do laço que, em algum momento, fará com que a condição de controle seja atingida e o laço if encerre no momento oportuno. Vejamos um exemplo: 9

#include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(lc_all,"portuguese"); unsigned short int i, limite, s_impar; i = limite = s_impar = 0; //*preparação para entrada no laço (i=0)... 10

... printf("informe o limite do intervalo: "); scanf("%d", &limite); } while (i < limite) //** Teste de entrada/saída { if (i % 2!= 0) s_impar += i; i++; //***Instrução utilizada para que a condição de controle seja atingida } printf("soma dos Impares entre 1 e %d: %d \n", limite, s_impar); return 0; 11

12

O comando for procura resumir essas três características comuns à maioria das implementações de laços em uma só instrução, facilitando assim a construção típica de laços. A sintaxe do comando for: for <instrução de preparação>; <instrução de controle>; <passo para alcance da condição> <bloco de instruções> <continuação do algoritmo> Portanto, temos a separação do comando em três cláusulas: preparação, condição e passo. 13

Vale citar que, quando temos mais de uma instrução de preparação (primeira cláusula), estas são separadas por vírgula e executadas na ordem em que se encontram no comando. for <instrução1 de preparação>, <instrução1 de preparação>; <... 14

Quando temos mais de uma condição de controle (segunda cláusula), os testes também são realizados em ordem, e a condição toda é Verdadeira apenas se todas as condições o forem. Ou seja, é equivalente a uma condição lógica ligada pelo conectivo &&. Não há como representar composição de condições no comando for. Nesse caso, eleve-se obrigatoriamente fazer uso dos comandos while ou do/while. for...>; <condição1 de controle>, <condição2 de controle>; <... 15

Algumas linguagens de programação não implementam explicitamente a terceira cláusula (passo), e esta tem, nesses casos, um comportamento implícito sempre igual. No caso da linguagem Pascal, por exemplo, o passo sempre é o incremento/decremento em 1 à variável preparada na primeira cláusula. Nesses casos, em geral, o for é usado quase que exclusivamente em algoritmos com contadores. Já a linguagem de programação C implementa todas as cláusulas do comando for. 16

O comando for é executado da seguinte maneira: 1. Execute a instrução de preparação na primeira iteração do laço. 2. Execute o teste de controle. Caso seja Verdadeiro, passe para o item 3. Caso contrário, passe para o item 6. 3. Execute o bloco de instruções. 4. Execute o passo para alcance da condição de controle. 5. Passe para o item 2. 6. Saia do laço e prossiga o algoritmo. 17

O comando for é equivalente à seguinte estrutura: <instrução de preparação> while <teste de controle> { <instruções> <passo> } Implementemos novamente o algoritmo Soma_Impares utilizando o comando for em vez do comando while: 18

#include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(lc_all,"portuguese"); unsigned short int i, limite=0, s_impar=0; printf("informe o limite do intervalo: "); scanf("%d", &limite);... 19

... for (i = 0; i < limite; i++) if (i % 2!= 0) s_impar += i; printf("soma dos Impares entre 1 e %d: %d \n", limite, s_impar); return 0; } 20

21

O bloco de instruções do comando for só contém uma instrução (o comando if) e, por isso, não precisa ser delimitado pelo { }. 22

O comando for é uma construção diferente no que diz respeito apenas ao estilo de programação, mas internamente seu funcionamento é igual ao do comando while ou do/while, e não há ganho de desempenho ou diminuição de instruções executadas pela sua utilização. Temos apenas uma diminuição do número de linhas do algoritmo em virtude de seu estilo compacto, em que descrevemos três instruções em apenas uma linha. 23

Calcular o somatório Faça um algoritmo que calcule a fórmula abaixo: em que n é definido pelo usuário. Esse tipo de fórmula encaixa-se perfeitamente na estrutura do comando for. Podemos separar: Instrução de preparação: i = 3 Condição de saída: i = n Passo: i := i + 1 24

#include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(lc_all,"portuguese"); unsigned short int i, n=0, somatorio=0; printf("informe o valor para n: "); scanf("%d", &n); for (i = 3; i < n; i++) somatorio = 5 * i + 2; } printf("o resultado do Somatório é: %d \n", somatorio); return 0; 25

26

EXERCICIO: 1. Faça os próximos algoritmos utilizando o for. a) Faça a multiplicação apenas por meio de somas. b) Faça um algoritmo que determine se um numero é primo. 27

2. Faça um algoritmo que calcule a soma dos números primos entre 1 e 100. 3. Dada a definição de MDC:"dados dois números inteiros a e b não nulos, define-se o maximo divisor comum (MDC) como sendo o maior inteiro que divide simultaneamente a e b", faça um algoritmo que leia dois números e, a partir deles, descubra o máximo divisor comum (MDC). 28

4. Dada a definição de MMC:"dados dois números inteiros a e b não nulos, define-se o mínimo múltiplo comum (MMC)como sendo o menor inteiro positivo, múltiplo comum de a e b", faça um algoritmo que leia dois números e encontre o mínimo múltiplo comum (MMC). Esse algoritmo deve utilizar o seguinte método para calcular o MMC:"multiplicar os dois números e dividir pelo MDC (máximo divisor comum)". 29

5. Faça o algoritmo para a resolução do somatório a seguir, sendo n definido pelo usuário e maior que 5: 30

6. Faça um algoritmo que encontre o n-ésimo termo da série de Fibonacci. A série de Fibonacci é dada por: fib(n) = fib(n - 1) + fib(n - 2) para n> 1; Para n = 0 e n = 1, o valor é dado por definição: fib(0) = 0 e fib(1) = 1. Exemplos: fib(0) = 0 fib(1) = 1 fib(2) = fib(1) + fib(0) = 1 + 0 = 1 fib(3) = fib(2) + fib(1) = 1 + 1 = 2 fib(4) = fib(3) + fib(2) = 2 + 1 = 3 fib(5) = fib(4) + fib(3) = 3 + 2 = 5 fib(6) = fib(5) + fib(4) = 5 + 3 = 8 31

32