Exercicios de Lógica - Estrutura Repetição
Autor: Felipe Fonseca | Publicado: 2012-05-04T23:49:00-03:00





1)
Desenvolver um programa em Pascal que efetue a soma de todos os números ímpares
que são múltiplos de três e que se encontram no conjunto dos números de 1 até
500.



2)
Uma grande firma deseja saber qual é o empregado mais recente e qual é o mais
antigo.

Sabendo
que a empresa tem 2000 empregados, Desenvolver um programa em Pascal para ler o
número do empregado e o número de meses de trabalho deste empregado e imprimir
o mais recente e o mais antigo. Obs.: A última informação contém os dois
números iguais a zero. Não existem dois empregados admitidos no mesmo mês.



3)
Desenvolver um programa em Pascal que leia a altura e o sexo (M ou F) de 15
pessoas. Este programa deverá calcular e mostrar :

a.
A menor altura do grupo;

b.
A média de altura das mulheres;

c.
O número de homens;

d.
O sexo da pessoa mais alta.



4) A
prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando
dados sobre o salário e número de filhos. A prefeitura deseja saber: ·

a)
média do salário da população;

b)
média do número de filhos;

c)
maior salário;

d)
percentual de pessoas com salário até R$250,00.

Desenvolver um programa para calcular e escrever o que
foi pedido nos itens a, b, c e d. O final da leitura de dados se dará com a
entrada de um salário negativo (FLAG).


5)
Desenvolver um programa que leia um
número não determinado de valores e calcule e escreva a média aritmética dos
valores lidos, a quantidade de valores positivos, a quantidade de valores
negativos e o percentual de valores negativos e positivos.



6)
Escrever um pprograma que leia 50 numeros
e conte quantos deles estão nos seguintes intervalos: [0 .. 25], [26 .. 50],
[51 .. 75] e [76 .. 100]



7)
Faça um programa que leia uma quantidade
não determinada de números positivos. Calcule a quantidade de números pares e
ímpares, a média de valores pares e a média geral dos números lidos. O número
que encerrará a leitura será zero.

&nbsp;

Exercicio 1
Program Pzim ;&nbsp;var&nbsp; num, soma :integer;&nbsp;Begin&nbsp; num := 1;&nbsp; //valor inicial dos numeros&nbsp; soma := 0; //resultado da soma dos multiplos de 3 ente 1 e 500&nbsp; while (num &lt;= 500) do&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; if ((num mod 3) = 0) then&nbsp; //verificando se o número &nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //é multiplo de 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; soma := soma + num;&nbsp;&nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp;&nbsp; num := num + 1; //incrementando mais 1 na variavel num&nbsp;&nbsp; end;&nbsp; writeln ('A soma dos multiplos de 3 entre 1 e 500 é: ',soma);&nbsp;End.

Exercicio 2
Program Pzim ;&nbsp;var&nbsp; numero: integer; //numero de registro do funcionario atual&nbsp; meses: integer; //meses trabalhados do funcionario atual&nbsp; numero_recente: integer; //numero do funcionario mais recente&nbsp; numero_antigo: integer;&nbsp; //numero do funcionario mais antigo&nbsp; meses_recente: integer; //meses trabalhados do funcionario mais recente &nbsp; meses_antigo: integer; //meses trabalhados do funcionario mais antigo&nbsp;Begin&nbsp; numero_recente := 0;&nbsp; numero_antigo := 0;&nbsp; meses_antigo := 20000;&nbsp; meses_recente := 0;&nbsp; write ('Digite o numero do funcionario: ');&nbsp; read (numero);&nbsp; write ('digite o numero de meses trabalhados: ');&nbsp; read (meses);&nbsp; while ((numero &lt;&gt; 0) and (meses &lt;&gt; 0 )) do&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; if (meses &gt; meses_recente) then&nbsp; //verificando se o funcionario é o mais novo na empresa&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; meses_recente := meses;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numero_recente := numero;&nbsp;&nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; if (meses &lt; meses_antigo) then&nbsp; //verificando se o funcionario é o mais antigo na empresa&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; meses_antigo := meses;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numero_antigo := numero;&nbsp;&nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; //Limpando a tela e solicitando novamente os dados e mostrando para o usuario qual a condição de parada&nbsp;&nbsp;&nbsp; clrscr;&nbsp;&nbsp;&nbsp; writeln ('Para sair, digite "0" para o numero de funcionario e meses trabalhados');&nbsp;&nbsp;&nbsp; write ('Digite o numero do funcionario: ');&nbsp;&nbsp;&nbsp; read (numero);&nbsp;&nbsp;&nbsp; write ('Digite o numero de meses trabalhados: ');&nbsp;&nbsp;&nbsp; read (meses);&nbsp;&nbsp; end;&nbsp; writeln ('O funcionario ',numero_recente,' é o mais novo na empresa, trabalhando a ',meses_recente,' meses.');&nbsp; writeln ('O funcionario ',numero_antigo,' é o mais antigo na empresa, trabalhando a ',meses_antigo,' meses.');&nbsp;End.

Exercicio 3
Program Pzim ;&nbsp;var&nbsp; sexo, sexo_alta: char;&nbsp; altura, menor_altura, maior_altura, soma_altura_mulheres, media_altura_mulheres: real;&nbsp; homens, mulheres, cont: integer;&nbsp; &nbsp;Begin&nbsp; &nbsp; maior_altura := 0;&nbsp; menor_altura := 500;&nbsp; soma_altura_mulheres := 0;&nbsp; mulheres := 0;&nbsp; &nbsp; while (cont&lt;15) do&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; write ('digite o sexo da pessoa: ');&nbsp;&nbsp;&nbsp; readln (sexo);&nbsp;&nbsp;&nbsp; write ('Digite a altura da pessoa em centimetros: ');&nbsp;&nbsp;&nbsp; readln (altura);&nbsp;&nbsp;&nbsp; if (altura &lt; menor_altura) then&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menor_altura := altura;&nbsp;&nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; if (altura &gt; maior_altura) then&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sexo_alta := sexo;&nbsp;&nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; if (sexo = 'f') or (sexo = 'F') then&nbsp;&nbsp;&nbsp; &nbsp;begin&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; soma_altura_mulheres := soma_altura_mulheres + altura;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; mulheres := mulheres + 1;&nbsp;&nbsp;&nbsp; &nbsp;end;&nbsp;&nbsp;&nbsp; cont := cont + 1;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; end;&nbsp;&nbsp; media_altura_mulheres := soma_altura_mulheres / mulheres;&nbsp;&nbsp; homens := cont - mulheres;&nbsp;&nbsp; writeln ('A menor altura do grupo é: ',menor_altura);&nbsp;&nbsp; writeln ('A media de altura das mulheres é: ',media_altura_mulheres);&nbsp;&nbsp; writeln ('A quantidade de homens é: ',homens);&nbsp;&nbsp; writeln ('A pessoa mais alta entrevistada é do sexo ',sexo_alta);&nbsp;End.

Exercicio 4
Program Pzim ;&nbsp;var&nbsp; salario, filhos, media_salario, media_filhos, total_salario, maior_salario: real;&nbsp; quantidade_250, total_familias, total_filhos, perc_250: real;&nbsp; continua : char;&nbsp;Begin&nbsp;&nbsp; media_salario := 0;&nbsp;&nbsp; media_filhos := 0;&nbsp;&nbsp; maior_salario := 0;&nbsp;&nbsp; Quantidade_250 := 0;&nbsp;&nbsp; total_familias := 0;&nbsp;&nbsp; writeln ('digite a quantidade de filhos');&nbsp;&nbsp; read (filhos);&nbsp;&nbsp; writeln ('digite o salario da familia');&nbsp;&nbsp; read (salario);&nbsp;&nbsp; while (salario &gt; 0) do&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total_salario := total_salario + salario;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total_filhos := total_filhos + filhos;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; total_familias := total_familias + 1;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; if (salario &gt; maior_salario) then&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maior_salario := salario;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; if (salario&nbsp; &lt;= 250) then&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; quantidade_250 := quantidade_250 + 1;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; clrscr; //Limpa a tela para uma nova digitação &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; writeln ('Para sair digite a quantidade de filhos e o salario com o valor 0'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writeln ('digite a quantidade de filhos');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read (filhos);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writeln ('digite o salario da familia');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read (salario);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; clrscr;&nbsp;&nbsp;&nbsp; media_salario := total_salario / total_familias;&nbsp;&nbsp;&nbsp; media_filhos := total_filhos / total_familias;&nbsp;&nbsp;&nbsp; perc_250 := quantidade_250*100 / total_familias ;&nbsp;&nbsp;&nbsp; writeln ('A media de salario da população é: R$',media_salario:0:2);&nbsp;&nbsp;&nbsp; writeln ('A media de filhos por família é: ',media_filhos:0:2);&nbsp;&nbsp;&nbsp; writeln ('O maior salario encontrado foi de R$',maior_salario:0:2);&nbsp;&nbsp;&nbsp; writeln ('O percentual de familhas com salario de até R$250,00 é: ',perc_250:0:2,'%');&nbsp;delay (2000);&nbsp;End. 

Exercicio 5&nbsp;
&nbsp;Program Pzim ;&nbsp;var&nbsp; numero, total, media_total, qtd_pos, qtd_neg, porc_pos, porc_neg : real;&nbsp; continua : char;&nbsp;Begin&nbsp; continua := 's';&nbsp; while (continua = 's') or (continua = 'S') do&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp; writeln ('Digite um valor');&nbsp;&nbsp;&nbsp; read (numero);&nbsp;&nbsp;&nbsp; total := total + numero;&nbsp;&nbsp;&nbsp; if (numero &gt;= 0) then&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; qtd_pos := qtd_pos + 1;&nbsp;&nbsp;&nbsp;&nbsp; end&nbsp;&nbsp;&nbsp; else&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; qtd_neg := qtd_neg + 1;&nbsp;&nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; writeln ('Para digitar outro valor tecls S.');&nbsp;&nbsp;&nbsp; readln (continua);&nbsp;&nbsp; end;&nbsp;&nbsp; porc_pos := (qtd_pos * 100 / (qtd_pos + qtd_neg));&nbsp;&nbsp; porc_neg := (qtd_neg * 100 / (qtd_pos + qtd_neg));&nbsp;&nbsp; media_total := total / (qtd_pos + qtd_neg);&nbsp;&nbsp; writeln ('A valor medio dos numeros digitados é: ', media_total);&nbsp;&nbsp; writeln ('A quantidade de numeros lidos foi de ',qtd_pos,' ou ' ,porc_pos,'%.');&nbsp;&nbsp; writeln ('A quantidade de numeros lidos foi de ',qtd_neg,' ou ' ,porc_neg,'%.');&nbsp;End.

Exercicio 6&nbsp;
&nbsp;Program Pzim ;&nbsp;var&nbsp; cont, numero, entre025, entre2650, entre5175, entre76100 :integer;&nbsp;Begin&nbsp; cont := 0;&nbsp; entre025 := 0;&nbsp; entre2650 := 0;&nbsp; entre5175 := 0;&nbsp; entre76100 := 0;&nbsp; while (cont &lt;= 5) do&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writeln ('digite um numero');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read (numero);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (numero &gt;= 0) and (numero &lt;= 25) then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entre025 := entre025 + 1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (numero &gt;= 26) and (numero &lt;=50) then&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entre2650 := entre2650 + 1;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (numero &gt;= 51) and (numero &lt;= 75) then&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entre5175 := entre5175 + 1;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (numero &gt;= 76) and (numero &lt;= 100) then&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entre76100 := entre76100 + 1;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; end; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; end; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; cont := cont + 1; &nbsp;&nbsp; end;&nbsp;&nbsp; writeln ('A quantidade de numeros digitados entre 0 e 25 foi de: ',entre025);&nbsp;&nbsp; writeln ('A quantidade de numeros digitados entre 26 e 50 0foi de: ',entre2650);&nbsp;&nbsp; writeln ('A quantidade de numeros digitados entre 51 e 75 foi de: ',entre5175);&nbsp;&nbsp; writeln ('A quantidade de numeros digitados entre 76 e 100 foi de: ',entre76100);&nbsp;End.

Exercicio 7&nbsp;
Program Pzim ;&nbsp;var&nbsp; numero, total_par, par, impar, {media, media_par,} total : integer;&nbsp; media_par, media :real;&nbsp;Begin&nbsp; par := 0;&nbsp; impar := 0;&nbsp; media := 0;&nbsp; media_par := 0;&nbsp; writeln ('digite um numero positivo qualquer ou digite 0 para sair');&nbsp; read(numero);&nbsp; while (numero &lt;&gt; 0) do&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; total := total + numero;&nbsp;&nbsp;&nbsp; if ((numero mod 2) = 0) then&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; par := par + 1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total_par := total_par + numero;&nbsp;&nbsp;&nbsp;&nbsp; end&nbsp;&nbsp;&nbsp; else&nbsp;&nbsp;&nbsp;&nbsp; begin&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; impar := impar + 1;&nbsp;&nbsp;&nbsp; end;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; writeln ('digite um positivo numero qualquer ou digite 0 para sair');&nbsp;&nbsp;&nbsp; read(numero);&nbsp;&nbsp; &nbsp;&nbsp; end;&nbsp;&nbsp; media_par := total_par / par;&nbsp;&nbsp; media :=&nbsp; total / (par + impar);&nbsp;&nbsp; writeln ('Foram lidos ',par,' numeros pares e ',impar,' numeros impares. Totalizando ',(par+impar),' numeros lidos.');&nbsp;&nbsp; writeln ('A media dos numeros pares lidos foi de ',media_par:0:2);&nbsp;&nbsp; writeln ('A media total dos numeros lidos foi de ',media:0:2);&nbsp;End.&nbsp;