You are on page 1of 76

Programao de Computadores I

Algoritmos e Estruturas de Dados


Prof. Marcos Quinet Universidade Federal Fluminense UFF Plo Universitrio de Rio das Ostras - PURO

Introduo aos Algoritmos


Define-se como sistema computacional um conjunto de elementos bsicos de hardware, funcionando cooperativamente, para realizar alguma tarefa solicitada pelo usurio Contudo, para ser capaz de realizar estas tarefas necessrio um conjunto de instrues que digam como os recursos computacionais, representados pelo hardware, podem ser usados para resolver as instrues do usurio
2

Introduo aos Algoritmos


Torna-se necessrio o uso de uma linguagem de programao para desenvolver conjuntos de instrues que utilizem os recursos computacionais disponveis para realizar as tarefas Um conjunto de instrues segundo um conjunto de regras claras e pr-estabelecidas chamado de algoritmo Um algoritmo consiste em um texto composto por comandos (instrues), que devem ser executados sequencialmente
3

Introduo aos Algoritmos


Este texto uma representao concreta do algoritmo e tem um carter evidentemente esttico e atemporal. O texto no nos interessa em si, mas sim os resultados de sua execuo, um evento dinmico que evolui no tempo at produzir os resultados desejados O primeiro passo no entendimento de algoritmos a visualizao das aes executadas a partir da interpretao destas estruturas estticas
4

Introduo aos Algoritmos


Um algoritmo composto de estruturas bsicas de controle que seguem uma sequncia natural de aes, como as determinadas por um raciocnio lgico para a resoluo de um problema As estruturas bsicas de controle disponveis para algoritmos so similares aos processos naturais de aes do nosso dia-a-dia; so elas:
Sequncias simples; Alternativas; Repetio.
5

Introduo aos Algoritmos


Uma ao um evento que corre num perodo de tempo finito, estabelecendo um efeito intencionado e bem definido, por exemplo:
Ligar a televiso; Cozinhar um peixe para o jantar; Limpar os pratos.

O que nos interessa em uma ao o efeito que ela produz e que possa ser realizada em um perodo de tempo finito.

Introduo aos Algoritmos


necessrio considerar o estado do conjunto de propriedades dos objetos que so relevantes para a resoluo do problema, por exemplo, se os peixes j esto limpos ou no, se h sabo para lavar os pratos, etc. O algoritmo realizar um processo sequencial de aes para resolver um problema. Por exemplo, considere as aes envolvidas na atividade de uma dona-de-casa descascar batatas para o jantar. Um algoritmo poderia ser descrito da seguinte forma:
7

Introduo aos Algoritmos


Traga a cesta com batatas do poro; Traga a panela do armrio; Descasque as batatas; Devolva a cesta ao poro;

Um algoritmo pode ser descrito como um padro de comportamento, expresso em termos de um repertrio bem definido e finito de aes primitivas, das quais sabemos que podem ser executadas por um sistema computacional

Introduo aos Algoritmos


Utilizamos o ; (ponto-e-vrgula) como smbolo de sequenciamento, que serve para indicar o final de uma instruo em uma linha de texto Instrues simples so aquelas executadas sempre que o fluxo de execuo do algoritmo atinge a linha em que a instruo est localizada Alm de instrues simples, algoritmos podem conter instrues que so realizadas somente quando alguma condio ou no atingida. Estas instrues so chamadas de desvios condicionais
9

Introduo aos Algoritmos


Alm destas, algumas estruturas nos permitem executar um mesmo bloco de comandos repetidas vezes, alterando (ou no) um ou mais dados. Estas so chamadas de estruturas de repetio Basicamente, a programao estruturada consiste numa metodologia de projeto de programas, com os seguintes objetivos:
Facilitar a escrita de programas; Facilitar a leitura (entendimento) de programas; Permitir a verificao prvia da corretude de programas; Facilitar a manuteno e modificao de programas.
10

Algoritmos - resumo
Finitude: Um algoritmo deve sempre terminar aps um nmero finito de passos. Definio: Cada passo de um algoritmo deve ser precisamente definido. As aes devem ser definidas rigorosamente e sem ambiguidades. Entradas: Um algoritmo deve ter zero ou mais entradas, isto , informaes que so lhe so fornecidas antes do algoritmo iniciar. Sadas: Um algoritmo deve ter uma ou mais sadas, isto , resultados que tem uma relao especfica com as entradas. Efetividade: Um algoritmo deve ser efetivo. Isto significa que todas as operaes devem ser suficientemente bsicas de modo que possam ser em princpio executadas com preciso em um tempo finito por um humano usando papel e lpis.
11

Representao de Algoritmos
Linguagem Natural Os algoritmos so expressos diretamente em linguagem natural, como nos exemplos anteriores. Fluxograma Convencional uma representao grfica, que emprega formas geomtricas padronizadas para indicar as diversas aes e decises que devem ser executadas para resolver o problema. Pseudo-linguagem Emprega uma linguagem intermediria entre a linguagem natural e uma linguagem de programao para descrever os algoritmos.
12

Exemplo de linguagem natural


Algoritmo de domingo:
Acordar; Tomar o caf; Se estiver sol vou praia seno leio o jornal; Almoar; Ir ao cinema; Fazer uma refeio; Ir dormir;

Final do domingo.

13

Exemplo de fluxograma

14

Exerccio
Escreva, em linguagem natural, um algoritmo para calcular as razes de uma equao de segundo grau, na forma Ax2 + Bx + C = 0 Para casa: desenhe um fluxograma para a resoluo do mesmo problema

15

Resposta
Algoritmo para clculo de uma equao do segundo grau:
Obter os coeficientes a, b e c; Se o coeficiente a for igual a zero informar que esta no uma equao do segundo grau e terminar o algoritmo; Caso contrrio continue e faa: Calcular delta=b2-4ac ; Se o valor de delta for negativo informar que a equao no tem raizes reais e terminar o algoritmo. Caso contrrio continue e faa:
Calcular a raiz quadrada de delta e guardar o resultado como raiz; Calcular x1=(-b + raiz)/(2a); Calcular x2=(-b - raiz)/(2a); Fornecer como resultado x1 e x2;

Fim do algoritmo para clculo de uma equao do segundo grau.


16

Programao Estruturada
A grande dificuldade no desenvolvimento de grandes sistemas de software na enorme complexidade que estes sistemas podem possuir; quanto maior o nmero de tarefas que ele deve desempenhar, maiores as chances de erros serem cometidos em seu desenvolvimento Djikstra foi um dos criadores dos princpios da programao estruturada, que prega os conceitos bsicos para evitar estes problemas, reduzindo a complexidade atravs de trs nveis:
17

Programao Estruturada
Desenvolvimento de programas em diferentes fases por refinamento sucessivo (desenvolvimento top-down) Por exemplo, se estamos desenvolvendo o algoritmo para descascar batatas, uma das operaes :
Traga a cesta com batatas do poro;

S que na verdade, esta operao envolve vrios outros passos, como abrir a porta do poro, acender a luz, descer as escadas, pegar a cesta e outras, mas que sero detalhadas no refinamento sucessivo da instruo
18

Programao Estruturada
Decomposio do programa total em mdulos funcionais, organizados, de preferncia, em um sistema hierrquico
a diviso de tarefas de um programa em subtarefas, cada uma implementando as instrues de uma funcionalidade especfica

Uso dentro de cada mdulo de um nmero muito limitado de estruturas bsicas de fluxo de controle
Desenvolver cada mdulo segundo o conceito de KIS keep it simple (mantenha isto simples)
19

Programao Estruturada
Vantagens do uso da programao estruturada:
Confiabilidade; Manutenibilidade; Flexibilidade.

A programao estruturada ainda contempla a importncia da documentao de sistemas e o fluxo de controle em algoritmos (nunca usar GOTO!)

20

Portugol - Introduo
O Portugol uma pseudo-linguagem de programao, criada a partir de uma combinao do portugus com o Algol e o Pascal Seu objetivo permitir que com um conjunto bsico de comandos seja possvel ao projetista pensar na lgica das instrues para resolver o problema, e no em sua implementao final, mas que no seja muito distante desta

21

Construo de algoritmos legveis


Procure incorporar comentrios no algoritmo, pelo menos para descrever o significado das variveis utilizadas. Comentrios em Portugol podem ocorrer em qualquer parte do algoritmo, colocados entre { } ou precedidos por // Escolha nomes de variveis que sejam significativos, isto , que traduzam o tipo de informao a ser armazenada na varivel Procure identar todos os comandos de acordo com o nvel a que pertenam, isto , destaque a estrutura na qual esto contidos
22

Tipos de dados
Os algoritmos iro manipular dados, que normalmente so fornecidos pelos usurios, e ir gerar resultados, que por sua vez devem ser retornados aos usurios. Existem trs tipos bsicos de dados que a linguagem de programao ir manipular:
Dados numricos; Dados alfa-numricos; Dados logicos;

23

Dados numricos
Os dados numricos que os algoritmos podem manipular so de dois tipos:
Dados inteiros Dados reais

O conjunto dos dados inteiros pode ser definido como Z={...,-3,2,0,1,2,...}. O conjunto dos nmeros reais inclui o conjunto dos nmeros inteiros, dos nmeros fracionrios e dos nmeros irracionais. O conjunto dos nmeros fracionrios pode ser formalmente definido como Q={p/q | p,q pertencem a Z}. O conjunto dos nmeros irracionais engloba aqueles que no podem ser representados por uma frao, por exemplo o nmero PI=3.141515... Os nmeros irracionais so armazenados at um certo nmero de casas decimais que o computador consegue representar a partir da as casas decimais so descartadas.
24

Dados alfa-numticos alfaDados alfa-numricos servem para tratamento de textos e normalmente so compostos por uma seqncia de caracteres contendo letras, algarismos e caracteres de pontuao. Nos algoritmos so normalmente representados por uma seqncia de caracteres entre aspas, por exemplo:
"Linguagem de programao" "Qual o seu nome?" "12345"

25

Dados lgicos
Este tipo de dados intensamente aplicado durante o processo de tomada de decises que o computador frequentemente obrigado a fazer. Em muitos textos este tipo de dados tambm chamado de dados booleanos, devido a George Boole, matemtico que deu ao nome lgebra (lgebra booleana) que manipula este tipo de dados. Os dados deste tipo somente podem assumir dois valores: verdadeiro e falso. Computadores tomam decises, durante o processamento de um algoritmo, baseados nestes dois valores.
26

Dados lgicos
Por exemplo, considere a deciso abaixo: Se raiz >= 0 imprima "Existe raiz" caso contrrio imprima "No existe raiz real." Nesta instruo aparece a expresso raiz >= 0, que procura descobrir se o valor de raiz maior que 0. Esta expresso somente pode ter como resultado os valores: verdadeiro ou falso. Nos nossos algoritmos estes valores sero representados por verdadeiro e falso. Mais adiante ficar claro como este tipo de dados ser empregado nos algoritmos.
27

Variveis
Uma varivel pode ser vista como um local onde se pode colocar qualquer valor do conjunto de valores possveis de um dos tipos bsicos listados a seguir. O nome da varivel um identificador para aquela informao A criao de uma varivel corresponde a alocao de um espao na memria principal do sistema computacional, reservado para armazenar um dado, de acordo com o tipo da varivel criada
28

Variveis
Devemos criar somente variveis que sero de fato utilizadas, e do tipo adequado, para no usar memria de forma desnecessria Tipos de variveis do portugol:
Inteiro: qualquer nmero inteiro, negativo, nulo ou positivo. Ex.: -5, 0, 235 Real: qualquer nmero real, negativo, nulo ou positivo. Ex.: -5,7, 0, 60, 43,7 Caracter: qualquer conjunto de caracteres alfanumricos. Ex.: XYZ, Joo, Informtica Lgico: conjunto de valores verdadeiro ou falso em proposies lgicas
29

Variveis
Uma varivel, para existir, deve ser declarada Ao ser declarada, um espao na memria reservado para esta varivel, e podemos utiliz-la para armazenar dados A declarao da varivel feita no comeo de um algoritmo, especificando seu nome e tipo
Exs.: inteiro: X1; real: A, B; caracter: FRASE, NOME; lgico: TEM;
30

Expresses aritmticas
Expresses aritmticas so aquelas que apresentam como resultado um valor numrico que pode ser um nmero inteiro ou real, dependendo dos operandos e operadores. As expresses que podem ser utilizadas dependem da linguagem de programao utilizada, apesar de todas reconhecerem as operaes elementares:
Operador + * / Descrio Soma Subtrao Multiplicao Diviso
31

Expresses lgicas
Expresses lgicas so aquelas cujo resultado pode somente assumir os valores verdadeiro ou falso. As operaes bsicas so:
Operador ou e no Descrio Ou lgico E lgico No lgico

32

Expresses lgicas
Estes operadores e seus dados tambm possuem uma espcie de tabuada que mostra os resultados de operaes bsicas. A Tabela a seguir mostra os resultados da aplicao destes operadores duas variveis lgicas.
A falso falso verdadeiro verdadeiro B falso verdadeiro falso verdadeiro A ou B falso verdadeiro verdadeiro verdadeiro Ae B falso falso falso verdadeiro no A verdadeiro verdadeiro falso falso
33

Operadores relacionais
Frequentemente so utilizados em operaes lgicas; o resultado de sua aplicao ser verdadeiro ou falso
Operador > < >= <= == != (ou <>) Descrio maior que menor que maior ou igual a menor ou igual a igual a diferente de

34

Comandos bsicos
Comandos de atribuio: para atribuir um valor a uma varivel, utilizado o smbolo de atribuio .
Exs.: X1 5; A 3,7; B - 76,1; NOME Joo da Silva; TEM falso;

35

Comandos bsicos - resumo


Operadores aritmticos: so as quatro operaes bsicas :soma (+), subtrao(-) , multiplicao (*) e diviso( / ), smbolos de raiz quadrada e exponenciao e nomes de funes matemticas comuns, por exemplo:
sen(x), cos(x), tg(x), arxtg(x), etc int (x): a parte inteira de x raizq (x): a raiz quadrada de x (x) mod (y): o resto da diviso de x por y (x) div (y): o quociente da diviso inteira de x por y
36

Comandos bsicos - resumo


Operadores lgicos: para relaes lgicas, temos o e (), ou () e no () Operadores relacionais: so os conectivos relacionais <, =, >, , , Ordem de prioridade de operaes:
1. Parnteses e funes 2. Expresses aritmticas 3. Comparaes (<, =, >, , , ) 4. no, e, ou (nesta ordem)
37

Observaes
Uma maneira comum de exibir valores numricos reais com muitas casas decimais utilizando a letra E, que indica a potncia de 10 que deve multiplicar o nmero que a precede
Ex. 315.21E3 = 315,21 x 10-3 = 0,31521

Toda linguagem de programao possui um conjunto de palavras reservadas, que so identificadores que s podem ser utilizados com um sentido pr-estabelecido pela linguagem, logo, no podem ser utilizadas como nomes de variveis
38

Estruturas de um algortimo
Blocos de comandos: um bloco pode ser definido como um conjunto de comandos com uma funo bem definida. Ele tambm serve para definir os limites onde as variveis declaradas em seu interior so conhecidas. Um bloco apresenta a seguinte estrutura:
algoritmo exemplo <declaraes de variveis> incio <comandos> fimalgoritmo
39

Estruturas de um algortimo
Sequncia simples: um conjunto de comandos, separados por ponto e vrgula (;), que sero executados numa seqncia linear, de cima para baixo.
comando 1; comando 2; comando 3; ...

40

Estruturas de um algortimo
Exemplo:
algoritmo calcula_valores var faltas: inteiro nota1, nota2, media: real nome_do_aluno: caracter passou: logico incio faltas 5; nome_do_aluno Joo da Silva media (nota1 + nota2)/2 passou verdadeiro fimalgoritmo
41

Estruturas de um algoritmo
Condicional: quando a ao a ser executada depender de uma inspeo ou teste, cujos resultados possveis so verdadeiro ou falso, teremos uma alternativa simples ou composta
se < condio > entao
comando 1; comando 2; ...

fim se;

42

Estruturas de um algoritmo
Por exemplo, considere novas instrues para a dona-de-casa descascando batatas:
Se o nmero de batatas insuficiente ento descasque mais uma batata;

Esta instruo do tipo condicional, ou seja, a ao descasque mais uma batata; s ser realizada se a condio se o nmero de batatas insuficiente for verdadeira, caso contrrio, nada feito nesta linha e o fluxo de execuo do algoritmo ir para a prxima linha de instruo do programa
43

Estruturas de um algoritmo
Exemplo:
algoritmo aprova_aluno var nota1, nota2, media: real passou: logico incio media (nota1 + nota2)/2 se (media 6) entao passou verdadeiro fimse fimalgoritmo
44

Estruturas de um algoritmo
Ainda sobre o desvio condicional, caso existam duas possibilidades para uma condio e uma delas falsa, e isto imediatamente faz da outra verdadeira, usada a clusula de seno para a execuo de uma instruo relacionada a outra possibilidade
Exemplo:
se ainda existem mais batatas na cesta ento descasque mais uma batata; seno busque mais batatas no poro; fim-se;

As condies combinadas possibilidades

de se e seno podem ser para contemplar mltiplas


45

Estruturas de um algoritmo
Condicional composta:
se < condio > entao comando 1 ... senao comando 2 ... fimse;

46

Exemplo
algoritmo teste var A, B: inteiro incio A1 B2 se A > B entao A5 senao A 10 fimse fimalgoritmo
47

Exerccios
1.

2.

3.

Escreva um algoritmo que compare o valor de duas variveis inteiras, x e y, e armazene em uma varivel inteira z o maior dentre os dois valores Escreva um algoritmo que, dado os valores dos catetos a e b de um tringulo retngulo, calcule o valor de sua hipotenusa, c (a, b e c so variveis inteiras) Escreva um algoritmo que a partir de um nmero inteiro armazenado na varivel x, verifique se trata-se de um nmero par ou mpar, armazenando o resultado nas variveis lgicas par ou mpar
48

Respostas exerccio 1
algoritmo verifica_maior var x, y, z: inteiro incio se (x > y) entao zx senao zy fimse fimalgoritmo

49

Respostas exerccio 2
algoritmo pitagoras var a, b: inteiro c: real incio a a*a b b*b c a+b c raizq (c) fimalgoritmo
50

Respostas exerccio 3
algoritmo par_ou_impar var x: inteiro par, impar: logico incio se ( (x mod 2) = 0) entao par verdadeiro impar falso senao par falso impar verdadeiro fimse fimalgoritmo
51

Estruturas de um algoritmo
No caso de um nmero limitado e bem-definido de opes, onde somente uma pode ser verdadeira, podemos usar a estrutura caso, que seleciona uma dentre vrias opes
escolha <varivel>
caso opo 1 comandos... caso opo 2 comandos... ... outrocaso comandos...

fimescolha
52

Estruturas de um algoritmo
O que fazer quando uma mesma instruo deve ser repetida vrias vezes? possvel repetir o mesmo comando muitas vezes, mas no uma forma elegante de se resolver o problema
Traga a cesta com batatas do poro; Traga a panela do armrio; Descasque uma batata; Descasque uma batata; ... Descasque uma batata;
53

Estruturas de um algoritmo
Em algoritmos temos instrues de repetio, que executam uma mesma instruo (ou conjunto de instrues) diversas vezes, at que uma condio seja atendida. Por exemplo:
enquanto o nmero de batatas no for suficiente descasque uma batata; fimenquanto;

54

Exemplo
Algoritmo numeros var A, B, I, C: inteiro inicio A 1 B 1 C 1 enquanto I < 18 faa CA+B BC AB +1 I I+1 fimenquanto fimalgoritmo
55

Estruturas de um algoritmo
O uso do enquanto para repetio apenas uma das opes disponveis. Temos ainda os comandos repita e para ... faa, exemplificados a seguir:
repita comando 1; comando 2; ... at < condio >

56

Estruturas de um algoritmo
Observe que a alterao da condio que controla a repetio dos comandos deve ser alterada pelas instrues do programa e/ou seus respectivos resultados, para que em algum momento da execuo a condio no seja mais atendida e o programa deixe aquela estrutura de repetio Estruturas de repetio que so executadas infinitamente so chamadas de lao (ou loop) e constituem um erro de programao, pois se repetem indefinidamente, consumindo recursos computacionais e no obtendo uma soluo para o problema
57

Estruturas de um algoritmo
H ainda a estrutura de para ... faa, que obedece a sintaxe a seguir:
para <varivel de controle> de <valor inicial> at <valor final> (passo n) faa
comando 1; comando 2;

fimpara;

A varivel de controle apenas uma varivel comum, que a toda interao atualizada e testada para verificar se seu valor ainda est entre o intervalo definido por <valor inicial> e <valor final>
58

Estruturas de um algoritmo
A definio do passo opcional, caso seja realmente usado o incremento padro de +1 a cada iterao. Caso o valor do incremento seja qualquer outro nmero, positivo ou negativo, diferente de 1, necessrio explicit-lo
para i de 1 at 99 passo 2 faa escreval (Nmero mpar:, i) fimpara

No uso do para ... faa, o incremento da varivel de controle feito automaticamente, cabendo ao programador apenas definir o passo, se necessrio
59

Estruturas de um algoritmo
OBS: em algumas linguagens de programao, est disponvel a clusula step seguida de um nmero para a definio do passo, mas no no Pascal. Nele esto disponveis as clusulas to e downto, que fazem, respectivamente, o incremento por +1 e -1

60

Entrada e sada de dados


At ento, todos os valores calculados permanecem em variveis, na memria principal. Para fornecer os dados ao ambiente exterior ao algoritmo, ser necessrio imprim-lo, o que representa uma sada na tela, impressora ou at mesmo na forma de udio. Do mesmo modo, para escrevermos algoritmos mais gerais, ser necessrio obter dados do ambiente externo para o algortimo a partir de cartes. Usaremos os comandos leia ( ) e escreva ( ) (ou ainda, imprima ( ), ambas vlidas no portugol) para realizar, respectivamente, a entrada e sada de dados Geralmente utilizado o escreval ( ), que tem a mesma funo de mostrar mensagens na tela, mas, ao final, adiciona uma quebra de linha
61

Entrada e sada de dados


Os comandos de entrada e sada de dados podem combinar uma mensagem de texto prestabelecida com o valor de uma varivel, por exemplo:
nota 8 escreva (A nota final do aluno e, nota)

Mostrar na tela a mensagem A nota final do aluno e 8, que combina um texto fixo com o valor que a varivel nota armazena naquele instante
62

Entrada e sada de dados


De forma anloga, o comando leia permite obter a partir do teclado um dado de entrada digitado pelo usurio, por exemplo:
escreval (Digite o nome do aluno:) leia (nome_aluno)

Os comandos acima exibiro a mensagem Digite o nome do aluno: e em seguida ficar aguardando at que o usurio digite o dado solicitado e aperte a tecla enter; o dado digitado ser armazenado na varivel nome_aluno
63

Exemplo
Algoritmo soma_valores var valor, soma: inteiro inicio soma 0 leia (valor) enquanto valor -1 faa soma soma + valor leia (valor) fimenquanto escreva (o valor da soma e igual a , soma) fimalgoritmo
64

Entrada e sada de dados


A entrada de mltiplos dados pode ser feita em um mesmo comando, sendo apenas necessrio obedecer a ordem dos parmetros A separao entre os dados ser identificada pelo enter, por exemplo:
escreva ("Digite o nome do aluno e sua nota") leia (nome_aluno, nota_aluno)

65

Entrada e sada de dados


possvel configurar a quantidade de espaos no qual se deseja escrever um valor. Por exemplo, o comando escreva (x:5) escreve o valor da varivel x em cinco espaos, alinhandoo direita A mesma forma pode ser usada para configurar o nmero de casas decimais exibidas para valores reais. Por exemplo, escreva (y:6:2) imprime o valor da varivel y, com a parte inteira em 6 espaos, e duas casas decimais
66

Anlise de um algoritmo
Um algoritmo pode ser analisado sob vrios aspectos, dentre os quais so considerados os mais relevantes:
Atinge os objetivos propostos; Est correto; Possui boa documentao; Possui mdulos funcionais corretos O cdigo est inteligvel; Possui bom desempenho.

67

Observaes
Muitos exerccios utilizam os seguintes termos:
Entrada padro: quer dizer que os dados de entrada sero fornecidos atravs de digitao, via teclado Sada padro: significa que os resultados produzidos pelo algoritmo devem ser exibidos na tela do computador Flag: trata-se de um valor (ou texto) que, ao ser gerado, indica o trmino de uma tarefa, por exemplo, a entrada de dados. uma condio de parada
68

Observaes finais
Use sempre que possvel expresses aritmticas pr-definidas pela linguagem de programao, algumas das mais comuns so: A div B: quociente da diviso de A por B A mod B: resto da diviso de A por B sqrt (A): raiz quadrada de A round (A): arrendonda o valor real de A trunc (A): trunca o valor real de A

69

Exerccios
1.

Dado um conjunto de valores inteiros e positivos, perfurados em cartes, determine o valor da soma destes elementos. Um carto perfurado com o valor -1 (flag) indica o fim dos dados, e no deve ser considerado. Dado um conjunto de valores inteiros e positivos, perfurados em cartes, determine qual o menor valor do conjunto. Um carto perfurado com o valor -1 (flag) indica o fim dos dados, e no deve ser considerado.
70

2.

Exerccios
3.

Achar o menor e o maior nmero de uma srie de nmeros positivos fornecidos por cartes (existe pelo menos 1 carto). Um carto perfurado com o valor -1 (flag) indica o fim dos dados, e no deve ser considerado. Dado um conjunto de valores inteiros e positivos, perfurados em cartes, determine a mdia destes valores. Um carto perfurado com o valor -1 (flag) indica o fim dos dados, e no deve ser considerado.
71

4.

Exerccios
5.

Uma certa firma fez uma pesquisa de mercado para saber se as pessoas gostaram ou no de um novo produto lanado. Para isto, perguntou o sexo do entrevistado e sua resposta (sim ou no). Para uma amostra de 2000 pessoas, escreva um algoritmo que calcule e escreva:
O nmero de pessoas que responderam sim; O nmero de pessoas que responderam no; A porcentagem de mulheres que responderam sim; A porcentagem de homens que responderam no.

72

Exerccios
6.

7.

Escreva um algoritmo que calcule e escreva o nmero de gros de arroz que podem ser colocados em um tabuleiro de xadrez, colocando 1 no primeiro quadrado e nos quadrados seguintes o dobro do quadrado anterior Escreva um algoritmo que calcule o valor do somatrio:

2 2 2 2 S= + + + ... + 50 49 48 1

50

73

Exerccios
8.

Escreva um algoritmo que calcule o fatorial de um nmero inteiro. Uma pesquisa para determinar algumas caractersticas fsicas da populao de uma cidade coletou os seguintes dados:
Sexo (masculino, feminino); Cor dos olhos (azuis, verdes, castanhos, pretos); Cor dos cabelos (louros, castanhos, pretos, ruivos); Idade, em anos;

9.

Para cada habitante, foi digitada uma linha com estes dados e a ltima linha, que indica o fim da entrada de dados, conter o valor de idade igual a -1. Escreva um algoritmo que determine:
74

Exerccios
A maior idade dos habitantes; A porcentagem de cada cor de olhos; A porcentagem de indivduos do sexo feminino cuja idade est entre 18 e 35 anos, inclusive, e que tenham olhos verdes e cabelos louros.
10.

Escreva um algoritmo que, para um determinado nmero inteiro de dias informado, calcule a quantidade de horas, minutos e segundos correspondentes.

75

Exerccios
11.

Escreva um algoritmo que leia a altura das moas inscritas em um concurso de beleza. O flag de trmino de dados ser uma altura igual a zero. Calcule as duas maiores alturas e quantas moas as possuem. Um determinado material radioativo perde metade de sua massa a cada 50 segundos. Dada a massa inicial, em gramas, escreva um algoritmo que determine o tempo necessrio para que esta massa se torne menor do que 0,5 grama. Escreva a massa inicial, a massa final, e o tempo, calculado em horas, minutos e segundos.
76

12.

You might also like