0 évaluation0% ont trouvé ce document utile (0 vote)
253 vues27 pages
O documento apresenta exemplos de exercícios de algoritmos e programação em português estruturado. Inclui exemplos de algoritmos para cálculo de média, tipos de dados, troca de valores de variáveis e conversão monetária.
O documento apresenta exemplos de exercícios de algoritmos e programação em português estruturado. Inclui exemplos de algoritmos para cálculo de média, tipos de dados, troca de valores de variáveis e conversão monetária.
O documento apresenta exemplos de exercícios de algoritmos e programação em português estruturado. Inclui exemplos de algoritmos para cálculo de média, tipos de dados, troca de valores de variáveis e conversão monetária.
1 PASSO: Quando o sistema ler N1,N2,N3, e N4 devemos associar 7.0 ,8.0, 5.5 e 9.5. 2 PASSO: SOMAR = N1+N2+N3+N4 SOMAR= 7.0 +8.0+5.5+9.5 SOMAR= 30.0 3 PASSO: MEDIA = SOMA/4 MEDIA = 7.5 4 PASSO: se MEDIA >=7 RESULTADO= APROVADO se no RESULTADO= REPROVADO 5 PASSO: Nota 1 = 7.0 ; Nota 2 = 8.0; Nota 3 = 5.5 ; Nota 4 = 9.5; MEDIA = 7.5 ; RESULTADO = Aprovado; OBS: Estrutura condicional simples So usadas quando necessrio fazer uma opo entre 2 ou mais caminhos sendo que o fluxo do algoritmo desviado segundo uma condio lgico relacional. Esta estrutura subordina a execuo de um comando, ou bloco de comandos, a veracidade ou no de uma condio lgico relacional. Os comandos utilizados para implementar a estrutura de seleo so : SE, SE...SENO, CASO
2 Indique com um X quais os dados abaixo so do tipo inteiro. ( X ) 1000 ( ) 0 ( )-900 ( ) Verdadeiro ( X ) -456 ( X ) 34 ( ) Casa 8 ( )Falso ( X ) -156 ( ) -1.56 OBSERVAO Tipos inteiros So considerados inteiros aqueles valores numricos positivos ou negativos. Este tipo de dados pode ser usado por meio dos identificadores: int, pode possuir 16 bits, 32 bits ou 64 bits; short int, deve possuir tamanho de no mnimo 16 bits e no pode ser maior que int; long int, deve possuir tamanho mnimo de 32 bits; long long int, deve possuir tamanho mnimo de 64 bits.
3 Indique com um X quais os dados abaixo so do tipo real. (X ) 1000 ( ) 0 ( ) -900 ( ) Verdadeiro ( X ) -456.5 ( X ) 34 ( ) Casa 8 ( )Falso (X ) -156 ( X ) -1.56 OBSERVAO Tipos reais So considerados reais os valores numricos positivos e negativos sendo nmeros fracionrios ou inteiros. Este tipo de dados pode ser usado por meio dos identificadores: float define um nmero de ponto flutuante com seis dgitos decimais de preciso absoluta; double representa nmeros de ponto flutuante com quinze dgitos decimais de preciso absoluta; e long double suporta um nmero de ponto flutuante com quinze dgitos decimais e preciso absoluta. 4 Indique com um X quais os dados abaixo so do tipo lgico. ( ) 1000 ( ) 0 ( )-900 ( X ) Verdadeiro ( ) -456 ( ) 34 ( ) Casa 8 ( X )Falso ( ) -156 ( ) -1.56 OBSERVAO= Tipos lgicos Os dados do tipo lgico podem assumir somente dois valores: VERDADEIRO e FALSO 5 Indique com um X quais os dados abaixo so do tipo caractere. ( ) 1000 ( X ) 0 ( X )-900 ( ) Verdadeiro ( ) -456 ( ) 34 ( X ) Casa 8 ( )Falso ( ) -156 ( ) -1.56 OBSERVAO Tipos caracteres Caracteres ou sequncias de caracteres (strings) so formados por letras, nmeros e smbolos especiais, representando dados alfanumricos. Na linguagem C, por exemplo permite o uso de dados alfanumrico de duas formas: um caractere delimitado por apstrofos: x uma sequncia de caracteres delimitadas por aspas: x
6 Desenvolva os algoritmos em portugus estruturado: a) Efetuar o clculo da quantidade de litros de combustveis gasto em uma viagem, utilizando- se um automvel que faz 12 Km por litro. Para obter o clculo, o usurio dever fornecer o tempo gasto e a velocidade mdia durante a viagem. Desta forma, ser possvel obter a distncia percorrida com a frmula DISTANCIA = TEMPO * VELOCIDADE. Tendo o valor da distncia, basta calcular a quantidade de litros de combustvel utilizada na viagem com a frmula: LITROS_USADOS = DISTNCIA /12. O programa dever apresentar os valores da velocidade mdia, tempo gasto na viagem, a distncia percorrida e a quantidade de litros utilizada na viagem. RESPOSTA var TEMPO: real; VELOCIDADE: real; DISTANCIA: real; LITROS_USADOS: real; inicio escreva(Digite o tempo gasto na viagem); leia(TEMPO); escreva(Digite a velocidade media durante a viagem); leia(VELOCIDADE); DISTANCIA = TEMPO*VELOCIDADE; LITROS_USADOS = DISTANCIA/12; escreva(A velocidade media durante a viagem foi , VELOCIDADE); escreva(O tempo gasto na viagem , DISTANCIA); escreva(A quantidade de litros usados na viagem foi de , LITROS_USADOS); fim OBS: Faa o esquema chins e teste a resposta
b) Efetuar o clculo e a apresentao do valor de uma prestao em atraso, utilizando a frmula: PRESTACAO = VALOR + (VALOR * (TAXA / 100) * TEMPO). RESPOSTA var VALOR: real; PRESTACAO: real; TAXA: real; TEMPO: inteiro; inicio escreva(Digite o valor da Prestao); leia(VALOR); escreva(Digite o numero de dias em atraso); leia(TEMPO); PRESTACAO = VALOR+(VALOR *(TAXA/100)*TEMPO); escreva(O valor da prestao corrigido , PRESTACAO); fim c) Ler dois valores para as variveis A e B, e efetuar a troca dos valores de forma que a varivel A passe a possuir o valor da varivel B e a varivel B passe a possuir o valor da varivel A. Apresentar os valores trocados. RESPOSTA var A, B, TROCA: inteiro; inicio escreva(Digite o valor de A); leia(A); escreva(Digite o valor de B); leia(B); TROCA = B; A=B ; B= TROCA escreva(O valor trocado de B para A , A); escreva(O valor trocado de A para B , B); fim
d) Ler quatro nmeros e apresentar o resultado da adio e multiplicao, baseando-se na utilizao da propriedade distributiva. Ou seja, se forem lidas as variveis A, B, C e D, devero ser somadas e multiplicadas A com B, A com C e A com D. Depois B com C, B com D e por fim C com D. RESPOSTA var A,B,C,D: inteiro RESULTADO_ADICAO: inteiro RESULTADO_MULTIPLICACAO: inteiro inicio escreva(Digite o valor de A,B,C,D); leia(A,B,C,D); RESULTADO_ADICAO = (A+B) +(A+C)+ (A+D)+ (B+C)+ (B+D)+ (C+D); RESULTADO_ MULTIPLICACAO = (A*B) +(A*C)+ (A*D)+ (B*C)+ (B*D)+ (C*D); escreva(O resultado da adio baseado na propriedade distributiva RESULTADO_ADICAO); escreva(O resultado da multiplicao baseado na propriedade distributiva RESULTADO_ MULTIPLICACAO);
fim
e) Elaborar um programa que calcule e apresente o volume de uma caixa retangular, por meio da frmula: VOLUME = COMPRIMENTO * LARGURA * ALTURA. RESPOSTA var VOLUME, COMPRIMENTO, LARGURA, ALTURA : real; inicio escreva(Digite o comprimento da caixa retangular); leia(COMPRIMENTO); escreva(Digite a largura da caixa retangular); leia(LARGURA); escreva(Digite a altura da caixa retangular); leia(ALTURA); VOLUME = COMPRIMENTO * LARGURA * ALTURA; escreva(O volume da caixa retangular , VOLUME); fim
f) Efetuar a leitura de um nmero inteiro e apresentar o resultado do quadrado desse nmero. RESPOSTA var NUM : inteiro; inicio escreva(Digite um numero); leia(NUM); escreva(O quadrado de NUM , NUM* NUM); fim g) Ler dois inteiros (variveis A e B) e imprimir o resultado do quadrado da diferena do primeiro valor pelo segundo. RESPOSTA var A,B, QD : inteiro; inicio escreva(Digite o valor de A); leia(A); escreva(Digite o valor de B); leia(B); QD =(A*A)-(2*(A*B))+(B*B); escreva(O quadrado e a diferena de A e B , QD); fim
h) Elaborar um programa que efetue a apresentao do valor da converso em real (R$) de um valor lido em dlar (US$). O programa dever solicitar o valor da cotao do dlar e tambm a quantidade de dlares disponvel com o usurio. RESPOSTA var VALOR_DOLAR, VALOR_REAL, COTACAO_DOLAR : real; inicio escreva(Digite o valor da cotao do dlar ); leia(COTACAO_DOLAR); escreva(Digite sua quantidade em dolar); leia(VALOR_DOLAR); VALOR_REAL = VALOR_DOLAR * COTACAO_DOLAR; escreva(Seu valor em dlar convertido para real , VALOR_REAL); fim. i) Elaborar um programa que efetue a leitura de trs valores (A, B e C) e apresente como resultado final a soma dos quadrado da soma dos trs valores lidos. RESPOSTA var A,B,C,SQ: inteiro; inicio escreva(Digite o valor de A,B e C ); leia(A,B,C); SQ = (A*A)+ (B*B)+ (C*C); escreva(A soma dos quadrados de A,B e C , SQ); fim 7 Se o usurio entrar com os seguintes valores 5 19 11
O que ser impresso no final: var X : inteiro; A : inteiro; B : inteiro; inicio leia (A); leia (B); X = A + B; se (X > 10) ento escreva X; fim se; fim.
X A B 5 19
24
8 Se o usurio entrar com os seguintes valores 7 9
O que ser impresso no final: var X : inteiro; R : inteiro; A : inteiro; B : inteiro; inicio leia (A); leia (B); X = A + B; se (X >= 10) ento R = X + 5; se no R = X - 7; fim se; escreva R; fim. RESULTADO X R A B 16 21 7 9
21
9 Se o usurio entrar com os seguintes valores
560,75
O que ser impresso no final: var NOVO_SALARIO : real; SALARIO : real; inicio leia (SALARIO); se (SALARIO < 500) ento NOVO_SALARIO = SALARIO * 1.15; se no se (SALARIO <= 1000) ento NOVO_SALARIO = SALARIO * 1.10; se no NOVO_SALARIO = SALARIO * 1.05; fim se; fim se; escreva NOVO_SALARIO; fim.
10 Indique a sada dos trechos de programa em portugus estruturado, mostrado abaixo. Para as sadas considere os seguintes valores: A = 2, B = 3, C = 5 e D = 9. No necessrio calcular os valores de X. Marque na resposta apenas a frmula que ser executada de acordo com a condio. a) Resposta _____________________________
se .nao. (D > 5) ento X = (A + B) * D; se no X = (A - B) / C; fim se; escreva X;
se nao (D>5) ento se nao (9>5) entao se nao (V) entao se F entao 45
b) Resposta _____________________________ se (A > 2) .e. (B < 7) ento X = (A + 2) * (B - 2); se no X = (A + B) / D * (C + D); fim se; escreva X;
se F e V ento =(A+B)/D*(C+D) =5/9*14 =5/126 =0,39
c) Resposta _____________________________ se (A = 2) .ou. (B < 7) ento X = (A + 2) * (B - 2); se no X = (A + B) / D * (C + D); fim se; escreva X;
se F e V entao =(A+2)*(B-2) =4*1 =4
d) Resposta _____________________________ se (A > 2) .ou. .nao. (B < 7) ento X = (A + 2) - 2; se no X = A - B; fim se; escreva X;
se F ou nao V entao F ou F =A-B = -1
e) Resposta _____________________________ se .nao. (A > 2) .ou. .nao. (B < 7) ento X = A + B; se no X = A / B; fim se; escreva X;
se nao F ou nao V entao V ou F =A+B = 5
f) Resposta _____________________________ se .nao. (A > 3) .e. .nao. (B < 5) ento X = A + D; se no X = D / B; fim se; escreva X; se nao F ou nao V entao V e F =D+B = 3
g) Resposta _____________________________ se (C >= 2) .e. (B <= 7) ento X = (A + D) / 2; se no X = D * C; fim se; escreva X;
se V e V entao = (A+D)/2 =11/2 = 5,5
h) Resposta _____________________________ se .nao. (A >= 2) .ou. (C <= 1) ento X = (A + D) / 2; se no X = D * C; fim se; escreva X;
se V ou F entao = (A+D)/2 =11/2 = 5,5
11 Desenvolva os algoritmos em portugus estruturado: a) Ler dois nmeros e apresentar a diferena do maior pelo menor. RESPOSTA var A,B: inteiro; inicio escreva(Digite 2 numeros A e B); leia(A,B); se (A>B)entao escreva(A diferena de S por B , A-B); se no escreva(A diferena de B por A , B-A); fim se fim b) Efetuar a leitura de um valor inteiro positivo ou negativo e apresentar o nmero lido como sendo um valor positivo, ou seja, o programa dever apresentar o mdulo de um nmero fornecido. Lembre-se de verificar se o nmero fornecido menor que zero; sendo,multiplique-o por -1. RESPOSTA var N: inteiro; inicio escreva(Digite o nmeros: ); leia(N); se (N < 0)entao N = N * (-1); fim se escreva(O modulo do numero , N); fim
c) Ler quatro valores referentes a quadro notas escolares de um aluno e imprimir uma mensagem dizendo que o aluno foi aprovado, se o valor da mdia escolar for maior ou igual a 5. Se o aluno no foi aprovado, indicar uma mensagem informando esta condio. Apresentar junto das mensagens o valor da mdia do aluno para qualquer condio.
RESPOSTA var N1, N2, N3, N4, MEDIA: real; inicio Escreva(Digite os valores de N1,N2, N3 e N4); leia(N1,N2, N3 , N4); MEDIA = (N1+N2+ N3+N4)/4; se (MEDIA >= 7) entao Escreva(Aluno aprovado com mdia: MEDIA); se no Escreva(Aluno reprovado com mdia: MEDIA); fim se; fim
d) Efetuar a leitura de trs valores (variveis A, B e C) e apresent-los dispostos em ordem crescente. Para solucionar o problema, utilizar os conceitos de propriedades distribuitivas e troca de valores entre variveis. RESPOSTA var A,B,C; inteiro; M1,M2,M3: inteiro inicio Escreva(Digite os valores de A,B e C); leia(A,B,C); se (A>B) e(A>C) entao M1= A; se (B>C) entao M2 = B; M3 = C; se nao M2 = C; M3 = B; fim se; se nao se (B>C)entao M1 =B; se (A>C)ento M2= A; M3=C; se no M2 = C; M3 = A; fim se fim se else se (A>B)ento M2= A; M3=B; se no M2 = B; M3 = A; fim se
fim se fim
e) Efetuar a leitura de cinco nmeros inteiros e identificar o maior e o menor dos valores. No execute a ordenao dos valores. RESPOSTA var N1, N2, N3, N4, N5: inteiro; MAIOR, MENOR: inteiro; inicio Escreva(Digite 5 numeros); leia(N1,N2, N3 , N4, N5); MAIOR = 0; MENOR = 0; se (N1 > MAIOR) entao MAIOR = N1; fim se; se (N2 > MAIOR) entao MAIOR = N2; fim se; se (N3 > MAIOR) entao MAIOR = N3; fim se; se (N4 > MAIOR) entao MAIOR = N4; fim se; se (N5 > MAIOR) entao MAIOR = N5; fim se; MENOR = MAIOR se (N1 < MENOR) entao MENOR = N1; fim se; se (N2 < MENOR) entao MENOR = N2; fim se; se (N3 > MENOR) entao MENOR = N3; fim se; se (N4 < MENOR) entao MENOR = N4; fim se; se (N5 < MENOR) entao MENOR = N5; fim se; escreva(O maior nmero: MAIOR); escreva(O menor nmero: MENOR); fim.
12 Informe os valores das variveis pedidas nos problemas e informe o resultado dos algoritmos abaixo. a) programa LOOPING_1A var X, R : inteiro; CONT: inteiro; inicio CONT = 1; enquanto (CONT <= 5) faa leia (X); R = X * 3; escreva (R); CONT = CONT + 1; fim enquanto; fim.
RESPOSTA X R CONT 2 6 1 9 27 2 5 15 3 3 9 4 4 12 5 6
6 27 15 9 12 b) programa LOOPING_2A var X, R : inteiro; CONT: inteiro; inicio CONT = 1; repita leia (X); R = X * 3; escreva (R); CONT = CONT + 1; ate que (CONT > 5) fim.
RESPOSTA X R CONT 11 33 1 7 21 2 4 12 3 10 30 4 5
c) programa LOOPING_3A var X, R : inteiro; CONT: inteiro; inicio para CONT de 1 at 5 passo 1 faa leia (X); R = X * 3; escreva (R); fim para; fim.
RESPOSTA X R CONT 1 3 1 2 6 2 3 9 3 4 12 4 5 15 5 6
33 21 12 30 3 6 9 12 15 d) programa FATORIAL_A var CONTADOR : inteiro; FATORIAL: inteiro; inicio FATORIAL = 1; CONTADOR = 1; enquanto (CONTADOR <= 5) faa FATORIAL = FATORIAL * CONTADOR; CONTADOR = CONTADOR + 1; fim enquanto; escreva (Fatorial de 5 = , FATORIAL); fim.
O Fatorial de 5 = 120 O Fatorial de 5 = 120 f) programa FATORIAL_C var CONTADOR : inteiro; FATORIAL: inteiro; inicio FATORIAL = 1; para CONTADOR de 1 ate 5 passo 1 faa FATORIAL = FATORIAL * CONTADOR; fim para escreva (Fatorial de 5 = , FATORIAL); fim.
13 Desenvolva os algoritmos em portugus estruturado: a) Apresentar os resultados de uma tabuada de um nmero qualquer, a qual dever ser impressa no seguinte formato: Considerando como exemplo o fornecimento do nmero 2 2x1 = 2 2x2 = 4 2x3 = 6 2x4 = 8 2x5 = 10 (...) 2x10 = 20 RESPOSTA var N: inteiro; CONT: inteiro; Inicio leia(N); CONT=1; enquanto (CONT <=10) faa escreva(N, x , CONT, =, NxCONT); CONT = CONT +1; fim-enquanto fim O Fatorial de 5 = 120 b) Apresentar o total da soma dos cem primeiros nmeros inteiros (1+2+3+4+5+6+7+...97+98+99+100). RESPOSTA var N, CONT, SOMA: inteiro; inicio SOMA = 0; para CONT de 1 ate 100 passo 1 faa SOMA = SOMA + CONT; fim para; escreva(A soma dos , N, nmeros , SOMA); Fim;
c) Escreva um programa que apresente uma srie de Fibonacci at o dcimo quinto termo. A srie de Fibonacci 1,1,2,3,5,8,13,21,34,... etc. Esta srie se caracteriza pe soma de um termo posterior com o seu anterior subsequente.
RESPOSTA
var F, CONT, ANT, ATUAL: inteiro; inicio F=1; ANT=1; CONT=1; escreva (F); escreva (F); enquanto (CONT < 14) ento ATUAL = F; F=F+ANT; ANT=ATUAL; CONT=CONT+1; escreva(F); fim-enquanto; fim;
d) Elaborar um programa que efetue a leitura de 10 valores numricos e apresente no final o total do somatrio e a mdia dos valores lidos. RESPOSTA var N,S,M,CONT: inteiro; inicio S=0; para CONT de 1 ate 10 passo de 1 faa; escreva(Digite o , CONT ,numero); leia(N) S=S+N; fim para M = S/10; escreva (A soma dos 10 nmeros , S); escreva (A mdia dos 10 nmeros , M); fim
e) Elaborar um que efetue a leitura sucessiva de valores numricos e apresente no final o total do somatrio, a mdia e o total de valores lidos. O programa dever fazer a leitura dos valores enquanto o usurio estiver fornecendo valores positivos. Ou seja, o programa dever parar quando o usurio fornecer um valor negativo (menor que zero). RESPOSTA var N,S,M,VL: inteiro; inicio N = 0; VL=0; S = 0; enquanto (N < 0) faa; leia(N); se(N>0)entao S=S+N; VL = VL+1; fim se fim enquanto M = S/VL; escreva (Os valores lidos , VL); escreva (A soma dos valores , S); escreva (A mdia dos valores , M); fim f) Elaborar um programa que efetue a leitura de valores positivos inteiros at que um valor negativo seja informado. Ao final devero ser apresentado o maior e o menor valor informado pelo usurio. RESPOSTA var N,MAIOR, MENOR: inteiro; inicio leia(N); se(N>0)entao MAIOR = N; MENOR = N; enquanto (N > 0) faa; se(N>MAIOR)entao MAIOR = N; fim se; se(N< MENOR)entao MENOR = N; fim se; leia(N); fim enquanto escreva(O maior numero , MAIOR); escreva(O menor numero , MENOR); fim. 14 Qual ser a impresso obtida para cada uma destas instrues? Assuma que fazem parte de um programa completo
a) printf(Bom dia ! Shirley.); printf(Voc j tomou caf ?\n.); Bom dia ! Shirley. Voc j tomou caf ?
b) printf(A soluo no existe !\nNo insista.); A soluo no existe ! No insista.
c) printf(Duas linhas de saida\nou s Uma?); Duas linhas de sada ou s Uma?
15 Quais das seguintes instrues esto corretas ? a) (X) Int a; b) (X) Float b; c) Double float c; d) Unsigned char d; e) Long float e;
16 O que ser impresso no fim das operaes. REVISANDO:
n=5 x= n++ x=5 n=6 _________________________
n=5 x= ++n x=6 n=6 _________________________
k=3*n++ 1 n multiplicado por 3 2 o resultado atribudo a k 3 n incrementado 1 _________________________
k=3*++n 1 n incrementado 1 2 n multiplicado por 3 3 o resultado atribudo a k a) main(){ int i=3; int n; n=i*((i+1)+(++i)); printf(\n n = %d, n); }
i n 3 =i*( (i+1)+(++i) =i*( 4+4) =3*8 n = 15
b) main(){ int i=3; int n; n=i*(i+1)+(i++); printf(\n n = %d, n); } i n 3 =i*( (i+1)+(i++) =3*4+(i++) =12*3
n = 15
c) main(){ int i=3; int n; printf(\n n = %d, n=i*(i+1)+(++i)); }
i n 3 =i*( (i+1)+(++i) =3*4+4 =12+4
n = 16
d) main(){ int i=3; int n; printf(\n n = %d, n=i*(i+1)+(i++)); } i n 3 =i*( (i+1)+(i++) =3*4+3 =12+4
n = 16 e) main(){ int i=3; printf(\n n = %d %d %d ,i=i+1, i=i+1, i=i+1); } i 3
6 5 4
17 Qual ser sada do seguinte cdigo? a) main(){ int total=0; int cont=10; printf(Total =%d\n ,total); total+=cont; printf(Total =%d\n ,total); total+=cont; printf(Total =%d\n ,total); } TOTAL CONT 0 10 10 20
18 Quais das seguintes opes so considerados operadores aritmticos bsicos? a (x) + b & c % d <
19 Dados os seguintes cdigos, escreva qual ser sada dos comandos.
a) main(){ int conta; for(conta = 9; conta>=0; conta--) printf(Conta=%d\n,conta); } CONTA 9 8 7 6 5