Programação de Computadores



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

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)

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

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

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

PROF. Menezes. program ex17; uses wincrt; var i, a, cont: integer;

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

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Aulas Anteriores. Detalhes da linguagem de programação

3. 1. Teste no Início do Ciclo (Repetição enquanto ):

Universidade Estadual Vale do Acaraú Curso: Ciências da Matemática Disciplina: Introdução à Computação Prof. Hudson Costa

5. ESTRUTURA DE CONTROLE TOMADA DE DECISÕES

Exercícios sobre o Capítulo III

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

Notas de Aula de Algoritmos e Programação de Computadores

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

Exercícios de Fixação Aulas 05 e 06

Estruturas de Repetição

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

Ficha de Trabalho N.º5 Soluções Propostas

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

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

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea

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

Apontamentos de matemática 5.º ano - Múltiplos e divisores

Estrutura de decisão

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Linguagem de programação: Pascal

LISTA 14 Gabarito. 1) Preparar um algoritmo para calcular a soma de 100 termos da seguinte série:

Capítulo V : A Linguagem Pascal Um Tipo Estruturado de Dados: o array 18. Para limite de n até 2 (* passagens de 1 até (n-1) *)

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

Representação de Algoritmos - Linguagens de Programação

PHP Estruturas de repetição

LINGUAGEM PASCAL Elementos básicos e estrutura

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

Disciplina Programação Prof. Esp. Armando Hage. Programação em Turbo Pascal

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

Exercícios (if/ if else/ if elseif else)

Programação para Computação

Linguagens de Programação:

Computação Eletrônica

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

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

Capítulo IV : A Linguagem Pascal Ficheiros de Texto

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Resumo 2 - Mapeamento Portugol-Pascal

Linguagem Pascal. Definição e Tipos de Dados. Professora Lara Popov Zambiasi Bazzi Oberderder. Linguagem PASCAL 1

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

1) Digitar o código-fonte no editor do compilador Turbo Pascal para windows, exatamente como apresentado a seguir:

LISTA DE EXERCÍCIOS 15 ( Matrizes (7Cs))

APÊNDICE A - FUNDAMENTOS DA LINGUAGEM DE PROGRAMAÇÃO PASCAL.

Refinamentos sucessivos

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Considere uma máquina que utiliza uma palavra de 10 bits. Suponha o seguinte padrão de bits:

VARIÁVEIS INDEXADAS VETORES E MATRIZES

Modularidade. Objetivos: Introduzir noções básicas de modularidade. Funções e procedimentos

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

Programação em FORTRAN V. João Manuel R. S. Tavares

EXEMPLOS DE PROGRAMAS PASCAL

1 Cada linha do triângulo é uma seqüência de fibonacci.

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

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Exercícios: comandos de repetição

Linguagem de Programação Pascal - Introdução

Capítulo III : A Linguagem Pascal Estruturas de Controlo

2. Construa um algoritmo para determinar os números primos menores ou iguais a 1000.

Elementos básicos das linguagens de programação

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

Estruturas de controlo condicional

Ficha 1 Noções de sequência e decisão em algoritmia

Transcrição:

Programação de Computadores Engenharia Electrotécnica 1º Ano - 1º Semestre Instituto Politécnico de Viseu Escola Superior de Tecnologia Ficha de Trabalho nº 4 - Soluções Propostas 1 - Escreva um programa em Pascal que leia um número inteiro positivo N e calcule o maior número par P tal que a soma de todos os números pares inferiores a P seja inferior a N. Por exemplo, se o valor dado N for 57 então o resultado será P=14 porque 2 + 4 + 6 + 8 + 10 + 12 + 14 = 56. program somapares(input, output); { objectivo: utilização do while; inicialização de variáveis} var numero, par, soma: integer; soma := 0; par := 0; write('introduza um número inteiro positivo: '); while soma < numero do par := par + 2; soma := soma + par; writeln('o Valor de P é ', par - 2); 2 - Modifique o programa anterior por forma a verificar se N é positivo. N deve ser pedido ao utilizador até que o utilizador escreva um número superior a zero. program somapares2(input, output); {objectivo: utilização do while; inicialização de variáveis.} var numero, par, soma: integer; soma := 0; par := 0; write('introduza um número inteiro positivo: '); until numero > 0; while soma < numero do par := par + 2; soma := soma + par; writeln('o Valor de P é ', par - 2);

3 - Escreva um programa em Pascal que leia um número inteiro positivo (integer) e inverta a ordem dos seus dígitos. Por exemplo, se o número dado pelo utilizador for 3454 o resultado deve ser 4543 (Sugestão: retire o dígito da direita do número através de sucessivas divisões por 10. Tenha em atenção os casos em que o número acabe em 0, isto é, se o número dado for 4300 o resultado deve ser 34). program reverse(input, output); var numero, digito: integer; { objectivo: e while;} write('introduza um número inteiro positivo: '); {atenção: valor máximo=maxint=32767 } until (numero > 0); inverso := 0; while numero <> 0 do digito := numero mod 10; numero := numero div 10; inverso := inverso * 10 + digito; write( O número invertido é, inverso); 4 - Escreva um programa em Pascal que escreva os N primeiros termos da série de Fibonacci. O valor N é pedido ao utilizador e deve ser positivo. A séries de Fibonacci é definida do seguinte modo: F(1) = 1 F(2) = 1 F(i+2) = F(i+1) + F(i) para i = 1, 2, 3, program fibonacci(input, output); {objectivo: while; ; variáveis temporárias;} var n, termo, i: integer; termo_ant, { termo_ant -> F(i-1) } termo_ant_ant: integer; { termo_ant_ant -> F(i-2) } writeln('escreva um número inteiro positivo.'); write('-> '); readln(n); if n <= 0 then writeln('o número deve ser positivo.') until n > 0; writeln(1); { n >= 1 sempre } termo_ant_ant := 1; { termo_ant_ant = F(1) } if n >= 2 then writeln(1); { F(2) = 1 } termo_ant := 1; { termo_ant = F(2) } i := 2; { inicialização do iterador } while i < n do termo := termo_ant + termo_ant_ant; writeln(termo); termo_ant_ant := termo_ant; termo_ant := termo; i := i + 1; 2/7

5 - Escreva um programa em Pascal que escreva a tabela de multiplicações 10x10. program tabuada(input, output); { objectivo: while ou aninhados; } var i, j: integer; j:=1; i := 1; write(i*j:5); i := i + 1; until i > 10; writeln; j := j + 1; until j > 10; 6 - Escreva um programa em Pascal que implemente o jogo do palpite. Um utilizador introduz um número inteiro entre 0 e 100 (o programa deve obrigar a que seja um número dentro destes limites) e um segundo utilizador tenta adivinhar esse número. O programa deve indicar se o número dado no palpite é superior ou inferior ao número a adivinhar. program jogopalpite(input, output); { objectivo: while; ; condições múltiplas para terminação de ciclo; variável de guarda (certo).} uses crt; var numero, palpite: integer; certo: boolean; write('jogador 1: introduza um valor entre 0 e 100: '); until (numero >= 0) and (numero <= 100); clrscr; certo := false; { inicialização da variável de guarda } writeln('jogador 2: '); write('qual o seu palpite? '); readln(palpite); if palpite > numero then writeln('tente um palpite inferior!') else if palpite < numero then writeln('tente um palpite superior!') else writeln('bingo! Acertou.'); certo := true; until certo; 3/7

7 - Acrescente ao programa anterior um contador de tentativas. program jogopalpite2(input, output); { objectivo: ciclos; condições múltiplas para terminação de ciclo; variável de guarda (certo); utilização de contador. } uses crt; var numero, palpite, tentativas: integer; certo: boolean; write('jogador 1: introduza um valor entre 0 e 100: '); until (numero >= 0) and (numero <= 100); clrscr; certo := false; { inicialização da variável de guarda } tentativas := 0; { inicialização do contador } writeln('jogador 2: '); write('qual o seu palpite? '); readln(palpite); tentativas := tentativas + 1; if palpite > numero then writeln('tente um palpite inferior!') else if palpite < numero then writeln('tente um palpite superior!') else writeln('acertou em ', tentativas, ' tentativas.'); certo := true; until certo; 8 - Escreva um programa que calcule a soma dos N primeiro números inteiros, escrevendo em cada iteração o total acumulado. program somannumeros(input, output); { objectivo: ciclo for. Determina a soma dos N primeiros nº inteiros} var n,soma,i:integer; write('n : ');readln(n); soma:=0; for i:=1 to N do soma:=soma+i; writeln(soma); writeln('soma: ',soma); 9 - Escreva um programa que calcule a soma da seguinte série de N termos: 1 1 1 1 1 1 + + + 2 4 6 8 10 program serie(input, output); { objectivo: utilizar o ciclo for. Determina a soma dos N termos 1-1/2 +1/4-1/6...} var n,i,sinal:integer; soma:real; 4/7

write('n : ');readln(n); soma:=1; sinal:=-1; for i:=1 to N-1 do soma:=soma+(sinal/(2*i)); sinal:=sinal*-1 writeln('soma: ',soma:2:6); 10 - Escreva um programa em Pascal que calcule a tabuada de um número inteiro i dado pelo utilizador no formato i x 1 = i i x 2 = 2i... program tabuada(input, output); { objectivo: ciclo for. Calcular a tabuada de um número dado pelo utilizador.} var i, n: integer; for i:= 1 to 3 do writeln('eu sei a tabuada...'); writeln; write('vou-lhe dizer a tabuada. De que número quer saber? '); readln(n); for i := 1 to 10 do writeln(n:2, ' x ', i:2, ' = ', n*i:2); 11 - Modifique o programa da alínea anterior por forma a calcular a tabuada toda de 0 a 10, parando o output entre cada tabuada. program tabuadatoda(input, output); { objectivo: ciclos for aninhados. Calcular a tabuada toda de um a dez. } var i, j: integer; write('vou dizer a tabuada toda. Tecle para continuar...'); for i := 1 to 10 do for j := 1 to 10 do writeln(i:2, ' x ', j:2, ' = ', i*j:2); end 12 - Escreva um programa que desenhe o seguinte triângulo: * *** ***** ******* ********* program triangulo(input, output); { objectivo: ciclo for. } var i, j: integer; for i := 1 to 5 do write(' ':30-i); for j := 1 to 2*i-1 do write('*'); writeln; 5/7

13 - Modifique o programa da alínea anterior, para que forneça uma pirâmide direita ou uma pirâmide invertida ou um losango, com um número de linhas dado pelo utilizador e de acordo com uma opção por ele indicada. 14 - Sendo dado o valor de N, compreendido entre 0 e 9, produza uma pirâmide de números de acordo com o exemplo seguinte para N=5. 1 121 12321 1234321 123454321 program piramidenumeros(input, output); { objectivo: outra forma de escrever uma piramide com vários ciclos for. ciclos for decrescentes (downto). } var n,i,j:integer; write('n: ');readln(n); for i:=1 to n do for j:=i+1 to n do write(' '); for j:=1 to i do write(j); for j:=i-1 downto 1 do write(j); writeln 17- Escreva um programa que calcule o capital acumulado com base num capital inicial, uma taxa de juro e um número de anos (pedidos ao utilizador). Exemplo: Capital inicial: 1000Є % Juros: 10 Nº de anos: 9 Ao fim de 9 anos, com capital inicial de 1000Є o capital final obtido é igual a 2357.948Є. program capitalacumulado(input, output); { objectivo: ciclos for. inicialização de variáveis.} var anos, i: integer; capital, capitaltotal, juro, taxa: real; write(' Capital inicial: '); readln(capital); write(' % Juros: '); readln(juro); write('nº de anos: '); readln(anos); taxa := juro*0.01; capitaltotal := capital; for i := 1 to anos do capitaltotal := capitaltotal * (1 + taxa); write('ao fim de ', anos, ' anos, com capital inicial de '); write(capital, ' Euros, o capital final obtido é'); writeln(' igual a ', capitaltotal, ' Euros.'); 6/7

15 - Escreva um programa que calcule a média das N notas do utilizador. 7/7