Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente.

Documentos relacionados
Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Linguagem Computacional. Estruturas de Controle: Estruturas de Repetição. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição

VARIÁVEIS NUMÉRICAS : integer - Números inteiros entre e real - Números reais de 11 algarismos significativos.

Estrutura de decisão

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

6) ESTRUTURA DE UM PROGRAMA

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

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

tipoveiculo = (bicicleta, motociclo, motorizada, automovel, autocomreb, camioneta, autocarro, camiao, reboque); veiculo : tipoveiculo;

Algoritmos - 3. Alexandre Diehl. Departamento de Física - UFPel

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Ciência da Computação

9. Comando de repetição com variável de controle (para.. de.. até.. faça)

Linguagem Computacional. Estruturas de Controle: Estruturas de Decisão ou de Seleção. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

TÉCNICO DE INFORMÁTICA - SISTEMAS

Estruturas de Controle

Aulas Anteriores. Detalhes da linguagem de programação

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Estruturas de Controle. Estrutura de Seleção. Estrutura de Seleção

Linguagem Pascal. Prof. Jonatas Bastos Site:

Introdução a Computação

Introdução à Programação 2006/07. Algoritmos

ESTRUTURAS DE CONTROLE

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

FACCAT Sistemas de Informação. Estruturas de Dados

Programação em C. Victor Amorim dos Santos

Microcontroladores. Programação: fluxogramas, pseudocódigos e lógica. Prof. Daniel

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

(Aplicações Práticas de Algoritmos Computacionais Lógica e Tipos de Dados)

Aula 5 ESTRUTURAS DE REPETIÇÃO (WHILE)

Aula Anterior. Decomposição algorítmica (continuação)

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Programação Procedimental

Oficina de Python Prof. Me. José Carlos Perini

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

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

Controlo do fluxo de execução

PROCESSAMENTO DA INFORMAÇÃO LAÇOS E REPETIÇÕES. Prof. Dr. Francisco Isidro Massetto

Algoritmos e Programação

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Laboratório 5 Estruturas de Selecção

Oficina de Python Prof. Me. José Carlos Perini

Elementos básicos das linguagens de programação

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

Noções de algoritmos - Aula 1

Prof. Tiago Alves de Oliveira. Tiago Alves de Oliveira - 1

Estruturas de Repetição

Introdução à Computação

LISTA DE EXERCÍCIOS O que será escrito quando os algoritmos/trechos de algoritmos abaixo forem executados (fazer no papel)?

PDA - Repetição. Estruturas de repetição. Slides adaptação de Deise Saccol

2.2.5 EXPRESSÕES - Regras para o cálculo de valores

ESTRUTURAS DE REPETIÇÃO - PARTE 1

Programação Estruturada

Introdução à Engenharia ENG1000

CONCEITOS DE ALGORITMOS

Universidade Veiga de Almeida Algoritmos e Linguagem I

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Introdução ao Fortran 90-4

Algoritmos e Programação (While Do While - Do) Prof. Me. Adelson Felipe Dias Nogueira

Estruturas de Repetição

Algoritmos: Estruturas de Controle

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

Fig.1: Ilustração de Estrutura de Controle Fonte:Internet

Introdução ao Fortran 90-3

SEBENTA INTRODUÇÃO Á ALGORITMIA

Noções de algoritmos - Aula 1

Introdução à Programação em C

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...

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

Introdução a Lógica de Programação

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Material Didático Proposto

Programação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais

Estruturas de Repetição

Estruturas de Repetição. João Medeiros FATERN

Estruturas de Repe,ção e Manipulação de Texto

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo

Capítulo III : A Linguagem Pascal Estruturas de Controlo

... contador = contador + 1; //contador++; ... <fim_da_estrutura_de_repetição> soma = 0; <estrutura_de_repetição_com_variável_x> soma = soma + x;

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

Algoritmos e Estruturas de Dados I

Programação de Redes de Computadores

Portugol. Tiago Alves de Oliveira

4. Constantes. Constantes pré-definidas

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

No segundo caso, se a condição for verdadeira é executado o bloco-instruções1

Aula 4 ESTRUTURAS DE REPETIÇÃO (FOR)

Algoritmos Estruturas de Controle

Comandos em C (cont.)

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

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

Transcrição:

Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente. Com base numa condição Estruturas de decisão ou selecção Com base num selector ou de escolha múltipla Com contador Estruturas de repetição ou ciclos Com base numa condição

A estrutura sequencial é a estrutura de controlo mais simples. As instruções são executadas de uma forma sequencial (umas a seguir às outras) segundo a ordem pela qual foram escritas. Exemplos: 1. Somar 2 números Pseudocódigo Inicio Escrever ( Introduza dois números ); Ler (a,b); c a+b; Escrever (a, +,b, =,c); Fim. Pascal Program soma; Var a,b,c:integer; Begin Writeln ( Introduza dois números ); Readln (a,b); c :=a+b; Writeln (a, +,b, =,c); End.

2. Dada a temperatura em graus FAHRENHEIT, faça a conversão para graus CELSIUS. Pseudocódigo: Início Escrever( Qual a temperatura em graus Fahrenheit? ); Ler (f); c (f-32) * 5/9; Escrever ( O valor em graus Celsius é, c); Fim Fluxograma: Início Escrever ( Qual a temp. em graus F? ) Ler (f) c (f-32) * 5/9 Escrever ( O valor em graus Celsius é, c) Fim

Traçagem: f=50 Passos \ Variáveis f c Saídas Leitura 50 Execução 10 Escrita O valor em graus Celsius é 10 Fim Exit Pascal Program temperatura; Traçagem: f=50 Var f,c:integer; Begin Writeln( Qual a temperatura em graus Fahrenheit? ); Readln(f) c := (f-32) * 5/9 Writeln( O valor em graus Celsius é, C); End.

Exercícios 1. A nota final de um aluno é calculada em função da nota do teste (30%), nota do trabalho (20%) e nota do exame (50%). Elabore um algoritmo, que após a leitura dos dados necessários, determine e escreva a nota final para um aluno. 2. Dada a área de um circulo, determine o perímetro que o envolve. 3. Dado um nº total de horas, determine quantas semanas, dias e horas esse nº corresponde. Nota: No resultado, o nº de dias deve ser menor ou igual a 7 e o nº de horas menor ou igual a 24. 4. Lido o ordenado ilíquido de um trabalhador e a percentagem que faz de descontos indique o ordenado líquido.

Se... Então... Com base numa condição Se... Então... Senão... Estruturas de decisão ou selecção Com base num selector ou de escolha múltipla Caso...

Se condição Então Início Instrução 1... Instrução n Fim Se condição for verdadeira é executado um bloco de instruções. Se condição for falsa o bloco de instruções não é executado. Se o bloco for constituído por mais do que uma instrução para não haver confusão é aconselhável mesmo em pseudocódigo delimitar as instruções do bloco por início e fim.

Exemplo: 1. Ler um número inteiro e verificar se é par. Pseudocódigo: Fluxograma Inicio Escrever( Introduza um número: ) Ler (n) Se nmod2=0 Então Escrever (n, é par ) Fim Início Escrever ( Int. um n.º ) Ler (n) Não nmod2=0 Sim Escrever (n, é par ) Fim Pascal Program par; Var n:integer; Begin End. Writeln( Introduza um número inteiro ); Readln(n); If nmod2=0 Then Writeln(n, é par );

Se condição Então Início Instrução 1... Instrução n Fim Senão Início Instrução 1... Instrução m Fim Se condição for verdadeira é executado um bloco de instruções, referente ao bloco Então. Se condição for falsa é executado um bloco de instruções, referente ao bloco Senão.

Exemplo: 1. Lida uma nota, de 0 a 20, indicar se um aluno está ou não reprovado. Pseudocódigo Fluxograma Início Escrever( Introduza uma nota (0..20) ); Ler (nota); Se nota>=10 Então Escrever ( passou ); Senão Escrever ( reprovou ); Fim. Início Escrever ( Int. nota ) Ler (nota) Sim Nota>=10 Não Escrever ( passou ) Escrever ( reprovou ) fim Traçagem: n=12 Passos \ Variáveis nota nota>=10 Saídas Leitura 12 Execução V Escrita Fim passou Exit

Pascal Program classificar; Var nota:integer; Begin Writeln( Introduza uma nota (0..20) ); Readln(nota); If nota>=0 Then Writeln( passou ) Else Writeln( reprovou ); End. Nota: Em Pascal antes de um else não se pode colocar ponto e vírgula (;). Em programação é frequente executar acções se e apenas se uma determinada condição se verificar. Se tal não suceder então o programa deve seguir o seu curso normal. Às vezes é necessário decidir entre duas alternativas. Todos os dias deparamo-nos com essa situação. Faz parte do nosso dia-a-dia. Se uma determinada condição booleana se verificar, é executado o bloco de instruções correspondente à alternativa verdadeira; caso contrário, e se houver essa alternativa, é executado o conjunto correspondente à alternativa falsa. Os operadores que aparecem para expressar condições são os operadores relacionais.

Exercícios 1. Lido um número escreva o seu valor absoluto. 2. Lido um número dizer se é positivo ou negativo. 3. Lidos dois números escrever o maior. 4. Lido um ano indicar se é ou não bissexto. 5. Uma criança tem no seu quarto ursos, carros e bonecos. Sendo dada a quantidade de cada brinquedo, calcule a respectiva percentagem. Indique se algum dos brinquedos tem percentagem superior a 50%.

Caso variável/selector etiqueta 1: instrução 1; etiqueta 2: instrução 2;... etiqueta n: instrução n; else instrução n+1; Fim; Esta estrutura permite a escolha entre várias alternativas. Esta estrutura pode ser convertida numa estrutura Se encadeada. O tipo de valores possíveis para a variável/selector tem obrigatoriamente de ser de um tipo ordinal (inteiro, carácter, booleano,...). As etiquetas são os valores possíveis que a variável/selector pode assumir. Estas podem ser valores individuais ou conjuntos. Exemplos (1,5,10; A, C ; 1..10; A.. Z ) Se a variável/selector for do tipo carácter as etiquetas tem de estar entre plicas ( ). Se cada etiqueta tiver mais do que uma instrução, estas deverão estar delimitadas por Início e Fim.

Exemplo: 1. Lida uma nota, de 0 a 20 (quantitativa), converta para a respectiva nota qualitativa. 0-4: Mau 5-9: Medíocre 10-13: Suficiente 14-17: Bom 18-20: Muito Bom Pseudocódigo Inicio Escrever ( Qual a nota? ); Ler (nota); Caso nota 0..4:Escrever ( Mau ); 5..9:Escrever ( Medíocre ); 10..13: Escrever ( Suficiente ); 14..17: Escrever ( Bom ); 18..20: Escrever ( Muito Bom ); fim; Fim. Fluxograma Início Escrever ( Qual a nota? ) Ler (nota) nota Escrever ( mau ) Escrever ( medíocre ) Escrever ( suficiente ) Escrever ( bom ) Escrever ( muito bom ) Fim

Pascal Program notas; Var nota:integer; Begin Writeln ( Qual a nota? ); Readln (nota); Case nota of 0..4: Writeln( Mau ); 5..9: Writeln ( Medíocre ); 10..13: Writeln ( Suficiente ); 14..17: Writeln ( Bom ); 18..20: Writeln ( Muito Bom ); End; End. Utilizando a estrutura Se... Inicio Escrever ( Qual a nota? ); Ler (nota); Se (nota >=0) AND (nota <=4) then Escrever ( Mau ) Senão Se (nota >=5) AND (nota <=9) then Escrever ( Medíocre ) Senão Se (nota >=10) AND (nota <=13) then Escrever ( Suficiente ) Senão Se (nota >=14) AND (nota <=17) then Escrever ( Bom ) Senão Se (nota >=18) AND (nota <=20) then Escrever ( M. Bom ) Fim.

Exercícios 1. Lidos dois números efetue uma das seguintes operações à escolha do utilizador: Adição (+), Subtração (-), Multiplicação (*) e Divisão (/). 2. Lido o mês indicar o número de dias correspondente. 3. Elabore o exercício anterior usando a estrutura Se... Então... Senão.... Comente. 4. Um vendedor tem comissão na venda de produtos. Se vender de 1 a 5 produtos tem uma comissão de 2%. Se vender de 6 a 10 produtos tem uma comissão de 5%. Se vender mais de 10 produtos tem uma comissão de 10%. Esta percentagem é em função do ordenado do vendedor. Lido o ordenado do trabalhador e o nº de produtos vendidos, escreva o ordenado após calcular a respetiva comissão.

Com contador Para... De... Até... Estruturas de repetição ou ciclos Com base numa condição Enquanto... Fazer... Repetir... Até...

Um ciclo é algo que é executado mais do que uma vez. Em programação é muitas vezes necessário executar uma determinada tarefa repetidamente. As estruturas de repetição permitem isso mesmo. Quando se utilizam as estruturas de repetição é necessário ter cuidado porque é fundamental que o programa termine. Uma das condições fundamentais de qualquer algoritmo é ser finito. Um ciclo deverá ter sempre quatro partes essenciais: 1. Inicialização das variáveis de condição de controlo; 2. Uma condição de controlo que é uma variável booleana ou uma expressão lógica cujo resultado é sempre verdadeiro ou falso; 3. Instruções de ciclo, as quais são executadas enquanto a condição o impuser; 4. A garantia de que o ciclo termine! Estruturas a estudar: Para... De... Até... Permite que as instruções do ciclo sejam executadas um número de vezes bem determinado. certo Enquanto... Fazer... É uma estrutura usada em ciclos condicionais (é uma condição que avalia) e pode ser executada zero ou mais vezes. Repetir... Até... Assim como a anterior esta também é usada em ciclos condicionais. A sequência de instruções será sempre executada pelo menos uma vez, dado que a expressão booleana não é executada no início do ciclo, como acontece na estrutura Enquanto..., mas, sim, no final, depois do ciclo já ter sido executado uma vez.

Para variável Valor_Inicial Até Valor_Final Fazer Início Instrução1;... Instruçãon; Fim; A estrutura Para é utilizada para efectuar ciclos incondicionais. Nesta estrutura de repetição existe uma variável de controlo que parte de um determinado valor (Valor_Inicial) e é incrementada ou decrementada, automaticamente à medida que o ciclo decorre, até atingir um outro determinado valor (Valor_Final). Valor_Inicial e Valor_Final terão de ser do tipo inteiro. O número de vezes que o ciclo é executado é conhecido à priori.

Exemplos 1. Escrever os primeiros 10 inteiros positivos. Pseudocódigo Fluxograma inicio Para i 1 até 10 fazer Escrever (i) fim inicio i,1,10 Escrever (i) fim Pascal Program inteiros; Var i:integer; Begin For i := 1 to 10 do Writeln (i); End. Sintaxe: For <variável>:=<valor1> to/downto <valor2> do <instruções> To variável é incrementada Downto variável é decrementada Em Pascal o incremento ou decremento é sempre e apenas 1.

2. Lidos 3 números indicar os pares. Pseudocódigo: Fluxograma inicio Para i 1 até 3 fazer inicio Escrever ( Introduza um número ); Ler (num); Se nummod2=0 Então Escrever (num, é par ); fim fim Não inicio i,1,3 Escrever ( Intro. um num ) Ler (num) nummod2=0 Sim Escrever (num, é par ) fim Traçagem: 5, 4, 2, 1, 8 Passos \ Variáveis i Num nummod2 Saídas ciclo 1 Introduza um número 5 Falso 2 Introduza um número 4 Verdadeiro 4 é par 3 Introduza um número 2 Verdadeiro 2 é par Fim Exit E se pretendêssemos um algoritmo que somasse números até a soma atingir ou ultrapassar 100!

Exercícios 1. Escrever a tabuada de um número lido. 2. Escrever os divisores de um número. 3. Lido um número, dizer se é ou não primo. 4. Calcular a soma dos N primeiros números naturais. 5. Lida a base e o expoente, calcular a potência. 6. Calcular a média de 10 números inseridos pelo utilizador.

O algoritmo sugerido anteriormente não tem solução utilizando a estrutura Para..., porque não sabemos quantos números são necessários inserir até perfazer a dita soma. No ciclo é necessário usar uma condição. Por esse motivo, a resolução do algoritmo passa pelo uso de uma estrutura de repetição condicional. Enquanto <condição> fazer inicio instrução 1; instrução 2;... instrução n; fim O ciclo começa com o teste de uma condição de controlo, enquanto esta condição for verdadeira o ciclo é executado. Uma vez que o teste é feito no início do ciclo este pode não ser executado uma única vez.

Exemplos: 1. Somar números até a soma atingir ou ultrapassar 100! Pseudocódigo: inicio soma 0; Enquanto soma < 100 fazer inicio Escrever ( Introduza um número ); Ler (num); soma soma+num; fim Escrever ( soma=,soma); fim Fluxograma inicio soma 0 Não soma<100 Sim Escrever ( Intro. um num ) Ler (num) soma soma+num Escrever ( soma=,soma) fim Neste exemplo diz-se que o ciclo é controlado por sentinela. Traçagem: 50, 10, 20, 30 Passos \ Variáveis soma<100 num soma Saídas 0 Ciclo Verdadeiro 50 50 Introduza um número Verdadeiro 10 60 Introduza um número Verdadeiro 20 80 Introduza um número Verdadeiro 30 110 Introduza um número Fim_ciclo Falso soma=110 Fim Exit

2. Calcular a média de idades de N pessoas. inicio soma 0; cont 1; Escrever ( Quantas pessoas? ) Ler (n) Enquanto cont <= n fazer inicio Escrever ( Introduza a idade,cont ); Ler (idade); soma soma+idade; fim media soma/n Escrever ( média =,media); fim Neste exemplo o ciclo é controlado por contador. Sempre que um ciclo é controlado por contador é convertível à estrutura Para.... Pascal Sintaxe: While <condição> do <instruções>;

Exercícios 1. Lida uma série de números, calcular a sua média. A série termina quando for digitado o número 0. 2. Escrever todos os múltiplos de 5 compreendidos entre dois valores introduzidos pelo utilizador. 3. Indicar todos os primos compreendidos entre dois valores introduzidos pelo utilizador. 4. Todos os algoritmos propostos para a estrutura Para....

Repetir instrução 1; instrução 2;... instrução n; Até <condição>; Esta estrutura é outra estrutura repetitiva de controlo, usada para efectuar ciclos condicionais. A sequência de instruções é sempre executada pelo menos uma vez, visto que a condição é testada no fim do ciclo. O ciclo, que utiliza esta estrutura, termina quando a condição for verdadeira.

Exemplo: 1. Somar números até a soma atingir ou ultrapassar 100! Pseudocódigo: inicio soma 0; Repetir Escrever ( Introduza um número: ); Ler (num); soma soma+num; Até soma>=100; Escrever ( soma=,soma); fim Não Fluxograma: inicio soma 0 Escrever ( Intro. um num ) Ler (num) soma soma+num soma>=100 Sim Escrever ( soma=,soma) fim Traçagem: 50, 10, 20, 30 Passos \ Variáveis Soma>=100 num soma Saídas 0 Ciclo Falso 50 50 Introduza um número Falso 10 60 Introduza um número Falso 20 80 Introduza um número Falso 30 110 Introduza um número Fim_ciclo Verdadeiro soma=110 Fim Exit Através da traçagem é visível uma das diferenças entre as duas últimas estruturas. Uma termina quando a condição é falsa, outra quando a condição é verdadeira. Nota: Esta estrutura é sempre convertível na estrutura While.

Pascal Program somar; Var soma,num:integer; Begin soma := 0; Repeat Writeln ( Introduza um número: ); Readln (num); soma := soma+num; Until soma>=100; Writeln ( soma=,soma); End. Sintaxe: Repeat <instruções> Until <condição>;

Exercícios 1. Todos os algoritmos propostos para a estrutura Enquanto....

Quantas vezes o ciclo vai ser executado? Se a resposta for afirmativa a estrutura Para pode ser a solução mais adequada. Apesar de qualquer estrutura contemplar uma situação destas. O ciclo é executado com base numa condição? Se a resposta é afirmativa é obrigatório o uso da estrutura Enquanto ou Repetir. Atenção: A estrutura repetir obriga a que o ciclo seja executado pelo menos uma vez.

Assim como é possível ter uma estrutura Se...Então...Senão... dentro de outra estrutura Se...Então...Senão..., também é possível ter um ciclo dentro de outro ciclo. A construção interna deve ser completamente embutida na construção externa. Não pode haver sobreposição. Exemplo: inicio soma 0; Para i 1 até 5 fazer inicio Repetir Escrever ( Introduza uma nota ); Ler (nota); Até nota>=0 e nota <=20; soma soma+nota; fim media soma/5; Escrever ( Média=,soma); fim Este algoritmo faz a validação dos dados, ou seja, calcula a média de notas situadas entre 0 e 20.