Académique Documents
Professionnel Documents
Culture Documents
Complexidade ciclomtica.
Grafo de fluxo.
Conjunto de caminhos independentes.
Casos de teste.
2. Escreva um programa que leia vrios nmeros inteiros ate que seja informado o
numero 0. Se o nmero lido for positivo, escreva uma mensagem indicando se ele
par ou mpar. Se o nmero for negativo, escreva a seguinte mensagem Este nmero
no positivo. (use a funo mod deve ser "x mod y" e retorna o resto da diviso de x
por y)
01. program positivonegativo;
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
var n:integer;
var teste2:integer;
begin
repeat
write('digite o numero a ser verificado');
readln(n);
if (n > 0) then
begin
writeLn ('O numero eh positivo ');
if (n mod 2 = 0) then
writeLn ('O numero eh par ')
else
writeLn ('O numero eh impar ')
end
else
write ('O numero eh negativo ')
;
until(n=0);
writeln('Digite qualquer tecla para continuar ');
readln(teste2);
end.
3. Escrever um algoritmo que l 5 valores para a, um de cada vez, e conta quantos destes
valores so negativos, escrevendo esta informao.
01. Program Ex.3 ;
02. Var
03. a: Integer;
04. i: Integer;
05. Neg: Integer;
06. Begin
07. i:= 0;
08. Repeat
09. Writeln ('Digite um nmero qualquer: ');
10. Readln (a);
11. If (a < 0 ) then
12.
Neg:= Neg + 1;
13. i:= i + 1;
14. Until (i = 5);
15. Writeln ('Foram digitados ', Neg,' nmero(s) negativo(s)');
16. End.
5. Dado uma srie de 20 valores reais, faa uma algoritmo que calcule e escreva a mdia
aritmtica destes valores, entretanto se a mdia obtida for maior que 8 dever ser
atribuda 10 para a mdia.
01. Program Exercicio5 ;
02. Var
03. Numero: Real;
04. SomaNumeros: Real;
05. Media: Real;
06. i: Integer;
07. Begin
08. i:= 0;
09. Repeat
10.
Writeln ('Digite um nmero: ');
11.
Readln (Numero);
12.
SomaNumeros:= SomaNumeros + Numero;
13.
i:= i + 1;
14. Until (i = 20);
15. Media:= SomaNumeros / i;
16. If (Media > 8) then
17.
Media:= 10;
18. Writeln ('A mdia dos nmeros digitados foi de: ', Media);
19. End.
6. Escreva um programa que conte quantas vezes cada dgito aparece em um nmero
inteiro longo lido (use o tipo LONGINT). Exemplo: se for lido o nmero 2622111, o
resultado ser:
1 -> 3
2 -> 3
3 -> 0
4 -> 0
5 -> 0
6 -> 1
7 -> 0
8 -> 0
9 -> 0
0 -> 0
01. Program exercicio42;
02. Var
03. NumeroDigitado: longint;
04. DigitoEncontrado: integer;
05. Representante: array [1..10] of integer;
06. i: integer;
07. Begin
08. For i:= 1 to 10 do
09. Representante[i]:= 0;
10. i:= 0;
11. writeln('Digite um numero inteiro: ');
12. readln(NumeroDigitado);
13. Repeat
14. DigitoEncontrado:= (NumeroDigitado mod 10);
15. NumeroDigitado:= (NumeroDigitado div 10);
16. Representante[DigitoEncontrado]:= Representante[DigitoEncontrado]+1;
17. If DigitoEncontrado = 0 then
18.
Representante[10]:= Representante[10]+1;
19. until (NumeroDigitado = 0);
20. For i:= 1 to 9 do
21. Writeln (i,'->',Representante[i]);
22. Writeln ('0->',Representante[10]);
23. readln();
24. end.
7. Faa um programa que leia 10 valores e depois leia mais 10 valores. O programa deve
escrever o produto de cada valor na primeira lista pelo valor correspondente na
segunda lista, ou seja, o primeiro nmero vezes o dcimo primeiro, o segundo vezes o
dcimo segundo, e assim por diante at o dcimo vezes o vigsimo.
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Program vezes;
var
tabela1:array[1..10]of real;
tabela2:array[1..10]of real;
mutiplicacao:array[1..10]of real;
i:integer;
lido:real;
Begin
for i:=1to 10 do
Begin
writeln('Digite o ',i,' numero:');
readln(lido);
tabela1[i]:=lido;
end;
for i:=1to 10 do
begin
writeln('Digite o ',i+10,' numero:');
readln(lido);
tabela2[i]:=lido;
end;
for i:=1 to 10 do
mutiplicacao[i]:= tabela1[i]*tabela2[i];
for i:=1to 10do
writeln('A mult. de:',tabela1[i]:2:2,'*',tabela2[i]:2:2,'eh:',mutiplicacao[i]:2:2);
readln();
end.
8. Escrever um programa que leia um nmero (do teclado) e calcule e imprima o fatorial
deste nmero.
01. Program Fatorial;
02. var num, fat, i : integer;
03. Begin
04. write ('Digite o numero');
05. readln (num);
06. i:= 1; fat:=1;
07. while i <= num do
08.
begin
09.
fat:= (fat * i);
10.
i:= i + 1
11.
end;
12. writeln ('Fatorial = ', Fat);
13. write ('digite enter para finalizar')
14. readln;
15. End.
9. Dada uma matriz de 4 x 5 elementos inteiros, calcular a soma de cada linha, de cada
coluna e de todos os seus elementos.
01. program somaMatriz;
02. var matriz : array [1..4, 1..5] of integer;
03.
arquivo : text;
04.
soma, linha, coluna : integer;
05. begin
06. assign (arquivo, 'c:\temp\matriz.txt');
07. reset(arquivo);
08. for linha := 1 to 4 do
09. for coluna := 1 to 5 do
10.
read(arquivo, matriz[linha,coluna]);
11. for linha := 1 to 4 do
12. begin
13.
soma := 0;
14.
for coluna := 1 to 5 do
15.
soma := soma + matriz[linha,coluna]
16.
;
17.
writeln('Soma linha ',linha,'=',soma);
18. end;
19. for coluna := 1 to 5 do
20.
begin
21.
soma := 0;
22.
for linha := 1 to 4 do
23.
soma := soma + matriz[linha,coluna];
24.
writeln('Soma coluna ',coluna,'=',soma);
25.
end;
26. soma := 0;
27. for linha := 1 to 4 do
28.
for coluna := 1 to 5 do
29.
soma := soma + matriz[linha,coluna];
30. writeln('Soma de todos elementos= ', soma);
31. close(arquivo);
32. readln();
33. end.