Baixe o app para aproveitar ainda mais
Prévia do material em texto
* Colégio Naval 2012 * Estrutura e Variáveis * * Operadores e Expressões * aritméticos relacionais lógicos * Linearizar as expressões resp:= ((x/y)+3)/2; Não esquecendo de que ao adicionar variáveis não numéricas estamos efetuando um CONCATENAÇÃO a:=”joão”+”Maria”; Obervação: Tipos de Dados x Operações (expressões) Não esqueça que os tipos de dados devem ser compatíveis para uma expressão ser executada com sucesso, como por exemplo a variável “resp” deve ser real, mesmo que “x” e “y” sejam inteiros. * Leitura e Escrita * program Exemplo_02; uses Crt; var a:integer; b:real; c:string; d:boolean; vet:array[1..4] of integer; mat:array[1..4,1..3] of integer; begin read (a); readln(b,c); writeln('valores '); write (a,b,c,d); writeln ('valores',a,b,c,d); end. * Desvio Condicional * IF..THEN..ELSE..; if expressão1 then if expressão2 then comando1 else comando2; if expressão1 then if expressão2 then begin comando1; Comnado2; end else comando3; * Exercício 01: Faça um algoritmo que receba a idade de 3 pessoas. Calcule e mostre a quantidade de pessoas com idade maior ou igual a 18 anos. UTILIZE TRÊS VARIÁVEIS * Exercício 01a: Faça um algoritmo que receba a idade de 3 pessoas. Calcule e mostre a quantidade de pessoas com idade maior ou igual a 18 anos. UTILIZE UM VETOR DE TRÊS OCORRÊNCIAS * Laços de Repetição * for contador := ValorInicial to ValorFinal do comando; ou for contador := ValorIni downto ValorFim do comando; while expressão do comando; while dado[ i ] <> x do i := i + 1; for i:= 1 to 10 do writeln(i); repeat comando1; ...; comandon; until expressão; repeat k := i mod j ; i := j ; j := k ; until j = 0 ; * for a:= 1 to 2 do COMANDO; for a:= 1 to 2 do for m:= 1 to 3 do for n:=1 to 2 do readln(valor[a,m,n]); ; ; for m:= 1 to 3 do COMANDO; for n:=1 to 2 do readln(valor[a,m,n]); for a:= 1 to 2 do for m:= 1 to 3 do COMANDO;; for a:= 1 to 2 do for m:= 1 to 3 do for n:=1 to 2 do readln(valor[a,m,n]);;; * for a:= 1 to 2 do COMANDO; writeln('------- a= ', a); for m:= 1 to 3 do COMANDO; writeln('------- a= ', a, ' --- b= ',m); for n:=1 to 2 do COMANDO; for a:= 1 to 2 do Begin writeln('------- a= ', a); for m:= 1 to 3 do COMANDO end; Begin writeln('------- a= ', a); for m:= 1 to 3 do COMANDO end; Begin writeln('------- a= ', a, ' --- b= ',m); for n:=1 to 2 COMANDO end; for a:= 1 to 2 do Begin writeln('------- a= ', a); for m:= 1 to 3 do Begin writeln('------- a= ', a, ' --- b= ',m); for n:=1 to 2 do writeln(valor[a,m,n]:5:2,' n= ',n); end; end; for n:=1 to 2 do writeln(valor[a,m,n]:5:2,' n= ',n); for a:= 1 to 2 do Begin writeln('------- a= ', a); for m:= 1 to 3 do Begin writeln('------- a= ', a, ' --- b= ',m); for n:=1 to 2 COMANDO end; end; * for a:= 1 to 2 do begin writeln('------- a= ', a); for m:= 1 to 3 do begin writeln('------- a= ', a, ' --- b= ',m); for n:=1 to 2 do writeln(valor[a,m,n]:5:2,' n= ',n); end; end; for a:= 1 to 2 do Begin writeln('------- a= ', a); for m:= 1 to 3 do Begin writeln('------- a= ', a, ' --- b= ',m); for n:=1 to 2 do writeln(valor[a,m,n]:5:2,' n= ',n); end; end; * Exercício 02: Faça um algoritmo que receba a idade de algumas pessoas. O algoritmo deve ser encerrado quando a idade de alguma pessoa for igual a 0 (zero). Calcule e mostre a quantidade de pessoas com idade maior ou igual a 18 anos. * Exercício 02a: Faça um algoritmo que receba a idade de algumas pessoas. O algoritmo deve ser encerrado quando a idade de alguma pessoa for igual a 0 (zero). Calcule e mostre a quantidade de pessoas com idade maior ou igual a 18 anos, apenas após ler TODAS as idades * Procedimentos e Funções * Antes de seguir, Você sabia ???? X:=8; Z:=20; WRITELN (‘teste’:x,’legal’:z); Onde x e z são as respectivos tamanhos das contantes ´teste´e ´legal. 123teste123456789012345legal teste legal * * PARÂMETROS A passagem de parâmetros pode ser de dois tipos, a saber: · Passagem por valor · Passagem por referência No primeiro caso o parâmetro assume o valor passado como argumento pela rotina de chamada, e no segundo caso o parâmetro assume o endereço da variável passada como argumento pela rotina de chamada. A passagem por referência é diferenciada da passagem por valor pela presença da palavra reservada var antes do nome identificador do parâmetro. Procedure exemplo ( var ParametroPassadoPorReferencia : integer ); Procedure exemplo ( ParametroPassadoPorvalor : integer ); * Exercício 03: Faça um programa que receba a idade e a altura de várias pessoas. Para encerrar a entrada de dados digitar idade menor ou igual a zero. Calcule e mostre a média das alturas das pessoas com mais de 50 anos, apenas após ler TODOS os dados. UTILIZE OBRIGATORIAMENTE PROCEDURES * Exercício 04: 1) Faça o teste de mesa do programa a seguir: (CHINÊS) * Exercício 05: 1) Desenvolva um programa Pascal que obtenha um número qualquer digitado pelo usuário e em seguida informe ao mesmo usuário o número que foi digitado. R 2) Faça um programa Pascal que leia duas variáveis e ao final do programa imprima os valores destas variáveis. R 3) Elabore um aplicativo Pascal que receba duas variáveis digitadas pelo usuário e calcule a soma destas variáveis. Ao final do programa informe os valores das variáveis digitadas e o valor da soma das mesmas. R 4) Crie um aplicativo Pascal que receba duas variáveis digitadas pelo usuário e calcule a soma destas variáveis, além do produto das mesmas. Ao final do programa informe os valores das variáveis digitadas e os valores da soma e do produto das mesmas. R 5) Pensando em Procedimentos, altere o aplicativo gerado na questão 4 para que a mesma utilize esta forma de pensar programas de computador. R 6) Verifique a possibilidade de utilização de array no exercício anterior. Caso seja cabível, altere o programa para considerar a variável como array. R 7) Altere o programa desenvolvido na questão 6 para que a soma e a multiplicação seja não mais de 2 termos, mas sim de 5 termos. R * Exercício 04: Program P07 ; // var operando: array [1..5] of real; w,z:real; procedure leitura; begin writeln ('digite os valores dos 5 termos'); read(operando[1]); read(operando[2]); read(operando[3]); read(operando[4]); read(operando[5]); end; procedure calculo; begin w:=operando[1]+operando[2]+operando[3]+operando[4]+operando[5]; z:=operando[1]*operando[2]*operando[3]*operando[4]*operando[5]; end; procedure impressao; begin writeln('o valor do 1 termo é igual a ',operando[1]:5:2); writeln('o valor do 2 termo é igual a ',operando[2]:5:2); writeln('o valor do 3 termo é igual a ',operando[3]:5:2); writeln('o valor do 4 termo é igual a ',operando[4]:5:2); writeln('o valor do 5 termo é igual a ',operando[5]:5:2); writeln('o valor de w é igual a ',w:7:3); writeln('o valor de z é igual a ',z:7:3); end; // Begin leitura; calculo; impressao; End. * Exercício 04: Program P07 ; var operando: array [1..5] of real; w,z:real; i:integer; procedure leitura; begin writeln ('digite os valores dos 5 termos'); for i:=1 to 5 do read(operando[i]); end; procedure calculo; begin for i:=1 to 5 do w:=w+operando[i]; z:=operando[1]*operando[2]*operando[3]*operando[4]*operando[5]; // POSSO ALTERAR PARA UM LAÇO DE REPETIÇÂO IDÊNTICO AO ANTERIOR ????? end; procedure impressao; begin for i:= 1 to 5 do writeln('o valor do ',i,’ termoé igual a ',operando[i]:5:2); writeln('o valor de w é igual a ',w:7:3); writeln('o valor de z é igual a ',z:7:3); end; Begin leitura; calculo; impressao; End. * Estilo de questões possíveis no Testão Qual o valor da variável T para um valor de N igual a 1004 ao final da execução do programa? Qual o valor da variável N que será escrito no comando writeln (N); Assinale a opção que indica o número da linha onde o comando contém um erro de sintaxe. * Estilo de questões possíveis no Testão Assinale a opção que define a estrutura do comando ............ Quando deve-se utilizar ........ Analise as afirmativas abaixo em relação a ...... ... Assinale a opção correta Dica: Peça a um outro aluno para alterar nossos exercícios, inclusive introduzindo erros. Ainda podem usar os exercícios do 2º ano. * MENSAGEM FINAL DECOREM SOMENTE AQUILO QUE DEVE SER DECORADO (estrutura da linguagem) e EXERCITEM O TESTE DE MESA (vulgarmente conhecido com chinês) ........ BOM TESTE !!!!!!! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Compartilhar