Académique Documents
Professionnel Documents
Culture Documents
http://fabiologica.blogspot.com
Em geral um algoritmo destina-se a resolver um problema: fixa um padro de comportamento a ser seguido, uma norma de execuo a ser trilhada, com o objetivo de alcanar a soluo de um problema.
2.5 Programao
Para que um computador possa desempenhar uma tarefa necessrio que esta seja detalhada passo-a-passo, numa forma compreensvel pela mquina, utilizando aquilo que se chama de programa. Neste sentido, um programa de computador nada mais que um algoritmo escrito numa forma compreensvel pelo computador (linguagem de programao). assim tambm com os algoritmos escritos para computador, voc deve especificar todos os passos, para que o computador possa chegar ao objetivo. Por exemplo:
Dados os nmeros naturais(N) 0, 1, 2, 3, 4, 5, 6, ... passo1 faa N igual a zero passo2 some 1 a N passo3 volte ao passo 2 Soma dos primeiros 100 nmeros naturais: passo1 faa N igual a zero passo2 some 1 a N passo3 se N for menor ou igual a 100 ento volte ao passo 2 seno pare
Nos dois exemplos acima, o primeiro possui repertrio bem definido, mas no finito, enquanto que o segundo tem um critrio de parada, ou seja, finito e descreve um padro de comportamento, ou seja, temos um algoritmo. 3
2.6 Programa
Programas so processos de automao. Uma tarefa deixa de ser desempenhada pelo homem e passa a ser realizada por mquinas, sejam estes dispositivos mecnicos, eletrnicos (como os computadores) ou de natureza mista. Para que a automao de uma tarefa seja bem-sucedida necessrio que a mquina que passar a realiz-la seja capaz de desempenhar cada uma das etapas constituintes do processo a ser automatizado com eficincia, de modo a garantir a repetibilidade do mesmo. Assim, necessrio que seja especificado com clareza e exatido o que deve ser realizado em cada uma das fases do processo a ser automatizado, bem como a seqncia em que estas fases devem ser realizadas.
Entrada
Processamento
Sada
Onde temos:
2.7.1 Entrada
So os dados de entrada do algoritmo. Hardwares para entradas de dados: teclado, mouse, microfone, scanner
2.7.2 Processamento
So os procedimentos utilizados para chegar ao resultado final.
2.7.3 Sada
So os dados j processados. Hardwares para sada de dados: impressora, monitor, caixa de som
Esta representao pouco usada na prtica porque o uso da linguagem natural muitas vezes d oportunidade a ms interpretaes, ambigidades e imprecises. Por exemplo, a instruo "afrouxar ligeiramente as porcas" no algoritmo da troca de pneus est sujeita a interpretaes diferentes por pessoas distintas. Uma instruo mais precisa seria: "afrouxar a porca, girando-a 30 no sentido anti-horrio". Vantagens: - O portugus bastante conhecido por ns; Desvantagens: - Impreciso; - Pouca confiabilidade (a impreciso acarreta a desconfiana); - Extenso (normalmente, escreve-se muito para dizer pouca coisa).
3.2 - Fluxograma
uma representao grfica de algoritmos onde formas geomtricas diferentes implicam aes (instrues, comandos) distintos. Tal propriedade facilita o entendimento das idias contidas nos algoritmos e justifica sua popularidade. Esta forma aproximadamente intermediria descrio narrativa e ao pseudocdigo, pois menos imprecisa que a primeira e, no entanto, no se preocupa com detalhes de implementao do programa, como o tipo das variveis usadas. Nota-se que os fluxogramas convencionais preocupam-se com detalhes de nvel fsico da implementao do algoritmo. Por exemplo, figuras geomtricas diferentes so adotadas para representar operaes de sada de dados realizadas em dispositivos distintos, como uma fita magntica ou um monitor de vdeo.
Terminal indica incio e/ou fim do fluxo de um programa ou sub-programa. Seta de Fluxo de dados indica o sentido do fluxo. Serve para conectar os smbolos. Entrada operao de entrada de dados. L os dados necessrios do programa Processamento operao de atribuio. Indica os clculos a efetuar, ou atribuies de valores Sada operao de sada de dados. Apresenta os dados no monitor (ou algum outro dispositivo de sada) Deciso (a ser tomada) indicando os desvios para outros pontos do fluxo, dependendo do resultado da comparao Preparao grupo de operaes no includas na diagramao (chave que modificar a execuo de um determinado programa) Conector ao receber duas Setas de Fluxo de dados, normalmente aps o fechamento dos processos decorrentes de uma deciso Conector de seo quando for necessrio particionar o fluxograma. Coloca um nmero idntico em ambas as sees / pginas, indicando a sua continuao. Abaixo est a representao do algoritmo de clculo da mdia de um aluno sob a forma de um fluxograma. inicio n1 n2 media ((n1 + n2) / 2)
1 6
1
.F.
(media >= 7)
.V.
reprovado
aprovado
fim Exemplo de um fluxograma convencional. De modo geral, um fluxograma se resume a um nico smbolo inicial por onde a execuo do algoritmo comea, e um ou mais smbolos finais, que so pontos onde a execuo do algoritmo se encerra. Partindo do smbolo inicial, h sempre um nico caminho orientado a ser seguido, representando a existncia de uma nica seqncia de execuo das instrues. Isto pode ser melhor visualizado pelo fato de que, apesar de vrios caminhos poderem convergir para uma mesma figura do diagrama, h sempre um nico caminho saindo desta. Excees a esta regra so os smbolos finais, dos quais no h nenhum fluxo saindo, e os smbolos de deciso, de onde pode haver mais de um caminho de sada (usualmente dois caminhos), representando uma bifurcao no fluxo. Vantagens: - Uma das ferramentas mais conhecidas; - Figuras dizem muito mais que palavras; - Padro mundial Desvantagens: - Faz com que a soluo do problema j esteja amarrada a dispositivos fsicos; - Pouca ateno aos dados, no oferecendo recursos para descrev-los ou representlos; - Complica-se medida que o algoritmo cresce.
3.3 - Pseudocdigo
De forma semelhante como os programas so escritos. Tambm chamado de Portugol ou Portugus Estruturado. A linguagem de Programao mais prxima o Pascal, com codificao quase idntica ao Ingls Estruturado. Esta forma de representao de algoritmos rica em detalhes, como a definio dos tipos das variveis usadas no algoritmo. Por assemelhar-se bastante forma em que os programas so escritos, encontra muita aceitao. 7
Na verdade, esta representao suficientemente geral para permitir a traduo de um algoritmo nela representado para uma linguagem de programao especfica seja praticamente direta. A forma geral da representao de um algoritmo na forma de pseudocdigo a seguinte: algoritmo <Nome_do_Programa> <declarao_de_variveis> inicio <corpo do algoritmo> FimAlgoritmo Algoritmo uma palavra que indica o incio da definio de um algoritmo em Portugol ou Pseudocdigo. <Nome_do_Programa> um nome simblico dado ao algoritmo com a finalidade de distingui-los dos demais. <declarao_de_variveis> consiste em uma poro opcional onde so declaradas as variveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos. Incio e FimAlgoritmo so respectivamente as palavras que delimitam o incio e o trmino do conjunto de instrues do corpo do algoritmo. Abaixo exemplo na forma de um pseudocdigo, da representao do algoritmo do clculo da mdia de um aluno. algoritmo CalculoMedia var n1, n2, media: real inicio leia n1 leia n2 media ((n1 + n2) / 2) se (media >= 7) entao escreva (aprovado) senao escreva (reprovado) fimse FimAlgoritmo Vantagens: - Independncia fsica da soluo (soluo lgica apenas); - Usa o portugus como base; - Pode-se definir quais e como os dados vo estar estruturados; - Passagem quase imediata do algoritmo para uma linguagem de programao qualquer. Desvantagens: - Exige a definio de uma linguagem no real para trabalho; - No padronizado. Pode ter certas diferenas dependo do autor / programador.
4.1.1 - Planejamento
a fase onde definimos o problema a ser resolvido utilizando um computador. Nesta fase relacionamos a entrada e a sada do futuro programa, assim como a definio dos arquivos auxiliares que ele venha a utilizar.
4.1.2 - Projeto
a fase onde a resoluo do problema concebida. Neste ponto so definidos detalhes do algoritmo, estrutura de dados empregados pelo programa.
4.1.3 - Escrita
Consiste em codificar o programa em uma linguagem de programao apropriada.
4.1.4 - Depurao
Ao final da escrita estaremos com o programa quase pronto; mas ser que ele funciona? Esta a fase onde se corrigem os erros, at que o objetivo seja alcanado.
4.1.5 - Implantao
O programa disponibilizado ao cliente para utilizao.
4.1.6 - Manuteno
O programa poder ser alterado, tanto para corrigir erros no encontrados na fase de depurao / implantao, como tambm para atender novas necessidades a serem solicitadas pelos usurios.
Determinar o que deve ser feito para transformar as entradas determinadas nas sadas especficas. Nesta fase que determinamos a construo de algoritmos propriamente dita, pois, a partir de alguns requisitos especificados, devemos determinar qual a seqncia de aes capaz de transformar um conjunto definido de dados nas informaes de resultado.
Conveno:
10
nvel). A seqncia de operaes bsicas, dada anteriormente, para resolver o problema de adicionar dois nmeros, est em uma linguagem de baixo nvel para o nosso computador hipottico. Em uma linguagem de alto nvel teramos um resultado assim: Leia X,Y SOMA = X + Y Escreva SOMA
12
Como dito anteriormente, os elementos dos conjuntos de nmeros fracionrios e reais so necessariamente representados no computador por dados do tipo real. Havendo a parte decimal, dever ser utilizado o caractere ponto (.) e no a vrgula. Exemplos de dados do tipo real: 24.01 - nmero real positivo com duas casas decimais 144 - nmero real positivo com zero casas decimais -13.3 - nmero real negativo com uma casa decimal 0.0 - nmero real com uma casa decimal 0 - nmero real com zero casa decimal
A rvore abaixo resume a classificao dos dados com relao aos tipos de dados apresentados.
5.4 - Variveis
Tudo o que instvel, inconstante. Sero armazenadas pela memria do computador, e necessrio identificar qual o melhor tipo de dados a ser utilizado. Para que no se "esquea" das informaes, o computador precisa guard-las em sua memria. Cada varivel representa um valor, e a qualquer instante pode ser alterado (quando for realizado um comando para fornecer um novo valor).
5.5.1 Memria
O acesso s informaes armazenadas na memria (leitura, escrita) feita Byte a Byte. Cada Byte formado por uma combinao de 8 dgitos binrios (0 e 1), sendo assim, um Byte possui 256 (28) estados possveis ou representa 256 smbolos de informao.
5.5.3 Identificadores
Podemos imaginar a memria como sendo um armrio repleto de gavetas, no qual as gavetas seriam os locais fsicos responsveis por armazenar objetos; os objetos (que podem ser substitudos ou no) seriam as informaes (dados), e as gavetas as variveis ou constantes. 14
Visto que na memria (armrio) existem inmeras variveis (gavetas), precisamos diferenci-las, o que feito por meio de identificadores (etiquetas). Cada varivel (gaveta), no entanto, pode guardar apenas uma informao (objeto) de cada vez, sendo sempre do mesmo tipo (material). Os identificadores possuem certas regras para serem formados: - Devem comear por um caractere alfabtico; - Podem ser seguidos por mais caracteres alfabticos e/ou alfanumricos; - No permitido o uso de caracteres especiais ou espaos; - No pode ser uma Palavra Reservada (instruo). Exemplos vlidos: pe, media, valor, jksp, m1, m2, nomeusuario.
No exemplo acima foram declaradas quatro variveis: - a varivel nome, capaz de armazenar dados alfanumricos (tipo Literal); - a varivel idade, capaz de armazenar um nmero inteiro; - a varivel salario, capaz de armazenar um nmero real; - a varivel tem_filhos, capaz de armazenar uma informao lgica (tipo booleano).
Uma determinada ao poder ser escrita diferente dependendo da Linguagem de Programao utilizada.
Figura - Tringulo de base (B) e altura (H). Por exemplo, a frmula de clculo da rea do tringulo dada por: 16
area <- 0.5 * b * h Esta frmula utiliza trs variveis: b e h, que contm as dimenses do tringulo, e area, onde guardado o valor calculado (resultado da avaliao da expresso). H, tambm, uma constante (0.5) e o operador de multiplicao (*), que aparece duas vezes na expresso. O conceito de expresso aplicado computao assume uma conotao mais ampla: uma expresso uma combinao de variveis, constantes e operadores, e que, uma vez avaliada, resulta num valor.
6.2 - Operadores
Operadores so elementos funcionais que atuam sobre operandos e produzem um determinado resultado. Por exemplo, a expresso 3 + 2 relaciona dois operandos (os nmeros 3 e 2) por meio do operador (+) que representa a operao de adio. De acordo com o nmero de operandos sobre os quais os operadores atuam, os ltimos podem ser classificados em: - binrios, quando atuam sobre dois operandos. Ex.: os operadores das operaes aritmticas bsicas (soma, subtrao, multiplicao e diviso); - unrios, quando atuam sobre um nico operando. Ex.: o sinal de (-) na frente de um nmero, cuja funo inverter seu sinal. Outra classificao dos operadores feita considerando-se o tipo de dado de seus operandos e do valor resultante de sua avaliao. Segundo esta classificao, os operadores dividem-se em aritmticos, lgicos e literais. Esta diviso est diretamente relacionada com o tipo de expresso onde aparecem os operadores. Um caso especial o dos operadores relacionais, que permitem comparar pares de operandos de tipos de dados iguais, resultando sempre num valor lgico. Mais adiante sero apresentados os operadores dos diversos tipos acima relacionados.
Tabela - Operadores aritmticos e sua ordem de prioridade Operador Tipo Operao Prioridade + Binrio Adio 4 Binrio Subtrao 4 * Binrio Multiplicao 3 / Binrio Diviso 3 ^ ou ** Binrio Exponenciao 2 + Unrio Manuteno de sinal 1 Unrio Inverso de sinal 1 A prioridade entre operadores define a ordem em que os mesmos devem ser avaliados dentro de uma mesma expresso. Este assunto ser tratado com maior profundidade numa seo posterior. O caractere (*) adotado na maioria das linguagens de programao para representar a operao de multiplicao, ao invs do caractere (x), devido possibilidade da ocorrncia do mesmo no nome de variveis. O smbolo (^) adotado para representar a operao de exponenciao, e em muitas literaturas ser visto o smbolo (**) para esta finalidade, mas ser adotado preferencialmente o smbolo (^).
Para exemplificar o uso de operadores lgicos, a Tabela 5.3 apresenta duas variveis lgicas A e B. Uma vez que cada varivel lgica possui somente dois valores possveis, ento h exatamente quatro combinaes para estes valores, razo pela qual a tabela tem quatro linhas. As diversas colunas contm os resultados das operaes lgicas sobre as combinaes possveis dos valores das variveis A e B.
Tabela - Tabela-Verdade dos operadores apresentados na Tabela anterior a b .nao. a .nao. b a .ou. b .F. .F. .V. .V. .F. .F. .V. .V. .F. .V. .V. .F. .F. .V. .V. .V. .V. .F. .F. .V. a .e. b .F. .F. .F. .V.
A Tabela acima chamada de Tabela-Verdade. Convm salientar as seguintes concluses que podem ser extradas por observao da Tabela: O operador lgico .nao. sempre inverte o valor de seu operando. Ex.: . nao. .V. = .F. e . nao. .F. = .V.; Para que a operao lgica .ou. tenha resultado verdadeiro basta que um de seus operandos seja verdadeiro; Para melhor visualizar este efeito, podemos imaginar que as 18
variveis lgicas a e b so como dois interruptores ligados em paralelo num circuito de acionamento de uma lmpada. H, ainda, outro tipo de operador que pode aparecer em operaes lgicas: os operadores relacionais, mostrados na Tabela.
Tabela - Operadores relacionais Operador Operao = Igual <> Diferente < Menor <= Menor ou igual > Maior >= Maior ou igual
Estes operadores so somente usados quando se deseja efetuar comparaes. Comparaes s podem ser feitas entre objetos de mesma natureza, isto , variveis do mesmo tipo de dado. O resultado de uma comparao sempre um valor lgico. O uso de operadores relacionais possibilita o aparecimento em expresses lgicas de variveis de outros tipos de dados que no o lgico.
7 - Comandos de Atribuio
Um comando de atribuio permite-nos fornecer um valor a certa varivel, onde o tipo dessa informao deve ser compatvel com o tipo da varivel, isto , somente podemos atribuir um valor lgico a uma varivel capaz de comport-lo, ou seja, uma varivel declarada do tipo lgico. O comando de atribuio uma seta apontando para a varivel ou dois pontos e o sinal de igual (<-): Exemplo: var a, b,c : inicio a <- 5 b <- a+b c <- b*a real
7.1 Constantes
Entendemos que uma informao constante quando no sofre nenhuma variao no decorrer do tempo. As constantes so definidas junto com as variveis antes de iniciar o programa, e em seguida aps o incio do algoritmo, as constantes recebem seu valor fixo atravs do comando de atribuio (<-): var nomepadrao : valorpi: inicio nomepadrao <- Joo valorpi <- 3.1415 19 caracter real
No exemplo acima foram declaradas duas constantes: - a varivel constante nomepadrao, que foi atribudo um valor fixo Joo do tipo Alfanumrico; - a varivel constante valorpi, que foi atribudo um valor fixo 3.1415 do tipo Real;
Algoritmo - 01: Criar um programa que efetue a leitura de dois valores numricos. Faa a operao de soma entre os dois valores e apresente o resultado obtido.
20
Planejamento Problema: Calcular a soma de dois nmeros. Objetivo: Apresentar a soma de dois nmeros. Entradas: N1, N2 Sadas: SOMA Projeto Clculos: SOMA <- N1 + N2 Fluxograma
Portugol algoritmo Algoritmo01 var N1 : real N2 : real SOMA: real inicio leia N1 leia N2 SOMA <- N1 + N2 escreva SOMA FimAlgoritmo
Algoritmo - 02: Ler dois valores numricos, efetuar a adio e apresentar o resultado caso o valor somado seja maior que 10.
Planejamento Problema: Calcular a soma de dois nmeros e apresentar o resultado com condio. Objetivo: Apresentar o resultado apenas se for maior que 10. Entradas: N1, N2 Sadas: SOMA Projeto Clculos e detalhamento: SOMA <- N1 + N2 Se (SOMA > 10) entao escreva SOMA Fimse Fluxograma INICIO N1 N2 SOMA N1 + N2
.F.
SOMA > 10
.V.
SOMA
FIM 22
Portugol Algoritmo Algoritmo02 Var N1: Real N2: Real SOMA: Real Inicio Leia N1 Leia N2 SOMA <- N1 + N2 Se (SOMA > 10) entao Escreva SOMA Fimse FimAlgoritmo
Algoritmo - 03: Ler dois valores numricos, efetuar a adio. Caso o valor somado seja maior ou igual a 10, este dever ser apresentado somando-se a ele mais 5, caso o valor somado no seja maior ou igual a 10, este dever ser apresentado subtraindo-se 7.
Planejamento Problema: Calcular a soma de dois nmeros e apresentar o resultado com uma condio. Objetivo: Apresentar o Resultado se for igual ou maior que 10 adicionando mais 5, se no for igual ou maior que 10 dever subtrair 7. Entradas: A, B Sadas: TOTAL Auxiliares: SOMA Projeto Clculos e detalhamento: SOMA <- A + B Se (SOMA >= 10) Ento TOTAL <- SOMA + 5 Seno TOTAL <- SOMA - 7 Fimse 23
.F.
.V.
TOTAL SOMA - 7
TOTAL SOMA + 5
TOTAL FIM Portugol Algoritmo Algoritmo03 Var A: Real B: Real SOMA: Real TOTAL: Real Inicio Leia A Leia B SOMA A + B Se (SOMA >= 10) entao TOTAL SOMA + 5 Senao TOTAL SOMA 7 Fimse Escreva TOTAL FimAlgoritmo
Se (variavel = valor1) entao comando1 Senao Se (variavel = valor2) entao Comando2 Senao Se (variavel = valor3) entao Comando3 Senao Se (variavel = valor4) entao Comando4 Senao comando5 Fimse Fimse Fimse Fimse
Algoritmo - 04: Ler um nmero inteiro entre 1 e 4 e escrever o nmero por extenso correspondente: exemplo: Lido 1, ser apresentado um. Lido 2, ser apresentado dois etc.
Planejamento Objetivo: Apresentar um nmero por extenso. Entradas: numero Sadas: Auxiliares: Projeto Clculos e detalhamento:
escolha numero caso 1 escreva um caso 2 escreva dois caso 3 escreva trs caso 4 escreva quatro outrocaso escreva nmero invlido fimescolha
25
Numero=2
.V.
dois
Numero=3
.V.
tres
Numero=4
.V.
quatro
numero invalido
FIM Portugol Algoritmo Algoritmo04 Var numero: inteiro Inicio Leia numero escolha numero caso 1 escreva um caso 2 escreva dois caso 3 escreva trs caso 4 escreva quatro outrocaso escreva nmero invlido fimescolha FimAlgoritmo
26
Algoritmo - 05: Apresentar o total da soma obtida dos cem primeiros nmeros inteiros (1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Enquanto ... Faca)
Planejamento Objetivo: Apresentar o resultado da soma obtida dos cem primeiros nmeros inteiros Entradas: Num Sadas: Tot 27
Projeto Clculos e detalhamento: Enquanto Num <= 100 faca Tot<--Tot+Num num=num+1 FimEnquanto Fluxograma INICIO num <- 0 tot <- 0 .F.
tot FIM Portugol Algoritmo Algoritmo05 Var Num, tot : inteiro Inicio Num <- 0 Tot <- 0 Enquanto Num <= 100 faca Tot <-Tot+Num Num <- num+1 FimEnquanto Escreva Tot FimAlgoritmo
28
Algoritmo 06: Apresentar o total da soma obtida dos cem primeiros nmeros inteiros (1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Repita ... At)
Planejamento Objetivo: Apresentar o resultado da soma obtida dos cem primeiros nmeros inteiros Entradas: Num Sadas: Tot Projeto Clculos e detalhamento: Num=1 Repita Tot <-Tot+Num Num <- num+1 Ateque Num >= 100 Portugol Algoritmo Algoritmo06 Var Num, tol : inteiro Inicio Num <- 1 Tot <- 0 Repita Tot <-Tot+Num Num <- num+1 Ateque Num >= 100 Escreva Tot FimAlgoritmo
29
tot FIM
8.3.3 Para ... de ... ate ... Passo ... faca Estrutura com varivel de Controle
Nas estruturas de repetio vistas at agora, acorrem casos em que se torna difcil determinar quantas vezes o bloco ser executado. Sabemos que ele ser executado enquanto uma condio for satisfeita - enquanto..faa, ou at que uma condio seja satisfeita - repita...at. A estrutura para .. passo repete a execuo do bloco um nmero definido de vezes, pois ela possui limites fixos: Para <varivel> <- <valor> at <valor> passo N faca < bloco de comandos > FimPara
Algoritmo - 07: Apresentar o total da soma obtida dos cem primeiros nmeros inteiros (1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Para .. Passo)
Planejamento Objetivo: Apresentar o resultado da soma obtida dos cem primeiros nmeros inteiros Entradas: Num Sadas: Tot 30
Projeto Clculos e detalhamento: Para num de 1 a 100 passo 1 faca Tot <-Tot+Num FimPara Fluxograma INICIO tot <- 0 .F.
tot FIM Portugol Algoritmo Algoritmo07 Var Num, tol : inteiro Inicio Tot <- 0 Para num de 1 a 100 passo 1 faca Tot <-Tot+Num FimPara Escreva Tot FimAlgoritmo
9 - Concluso
Este semestre teve como principal objetivo capacitar o aluno a entender os conceitos fundamentais de lgica de programao de forma independente da linguagem e introduzilo a uma metodologia de desenvolvimento de programas. Saber Lgica de Programao mais importante que saber uma Linguagem de Programao. Sem saber como se planeja um programa, dificilmente poder ser implantada tanto na Linguagem de Programao mais antiga como nas mais modernas. Deseja-se boa sorte a todos os colegas, futuros profissionais da rea de Informtica!!! 31
Sumrio
1 - Introduo disciplina de Lgica de Programao.......................................................2 2 Lgica de Programao................................................................................................2 2.1 - O que Lgica? .........................................................................................................2 2.2 - Existe Lgica no dia-a-dia? ........................................................................................2 2.3 - O que Algoritmo? ....................................................................................................2 2.4 - O que padro de comportamento?..........................................................................3 2.5 Programao .............................................................................................................3 2.6 Programa...................................................................................................................4 2.7 Etapas de um programa ............................................................................................4 2.7.1 Entrada ...................................................................................................................4 2.7.2 Processamento.......................................................................................................4 2.7.3 Sada ......................................................................................................................4 3 - Formas de Representao de Algoritmos .....................................................................4 3.1 - Descrio Narrativa ....................................................................................................5 3.2 - Fluxograma ................................................................................................................5 3.2.1 - Simbologias bsicas................................................................................................5 3.3 - Pseudocdigo.............................................................................................................7 4 - Ciclo de vida de um programa.......................................................................................9 4.1.1 - Planejamento ..........................................................................................................9 4.1.2 - Projeto .....................................................................................................................9 4.1.3 - Escrita .....................................................................................................................9 4.1.4 - Depurao...............................................................................................................9 4.1.5 - Implantao.............................................................................................................9 4.1.6 - Manuteno.............................................................................................................9 4.1.7 - Morte do programa ..................................................................................................9 4.2 - Mtodo para construo de algoritmos ......................................................................9 4.3 - Um ambiente para escrever algoritmos....................................................................10 4.4 - Funcionamento do nosso computador .....................................................................11 4.5 - Resolvendo um problema.........................................................................................11 5 - Tipos de Dados e Instrues Primitivas ......................................................................12 5.1 - Dados Numricos .....................................................................................................12 5.1.1 - Dados Numricos Inteiros .....................................................................................12 5.1.2 - Dados Numricos Reais........................................................................................12 5.2 - Dados Literais ..........................................................................................................13 5.3 - Dados Lgicos..........................................................................................................13 5.4 - Variveis...................................................................................................................14 5.5 Arquitetura de Memria ...........................................................................................14 5.5.1 Memria................................................................................................................14 5.5.2 Armazenamento de dados na memria................................................................14 5.5.3 Identificadores ......................................................................................................14 5.6 Definio de Variveis em Algoritmos .....................................................................15 5.7 Instrues Primitivas................................................................................................16 6 - Expresses..................................................................................................................16 6.1 - Conceito ...................................................................................................................16 6.2 - Operadores ..............................................................................................................17 6.3 - Tipos de Expresses ................................................................................................17 32
6.3.1 - Expresses Aritmticas .........................................................................................17 6.3.2 - Expresses Lgicas ..............................................................................................18 7 - Comandos de Atribuio .............................................................................................19 7.1 Constantes ..............................................................................................................19 7.2 - Entrada de Dados ....................................................................................................20 7.3 - Sada de Dados........................................................................................................20 8 - Estruturas de Controle.................................................................................................20 8.1 - Estrutura Seqencial ................................................................................................20 Algoritmo - 01: Criar um programa que efetue a leitura de dois valores numricos. Faa a operao de soma entre os dois valores e apresente o resultado obtido.........................................20 8.2 - Estruturas de Seleo ou Deciso ...........................................................................21 8.2.1 - Deciso Simples....................................................................................................22 Algoritmo - 02: Ler dois valores numricos, efetuar a adio e apresentar o resultado caso o valor somado seja maior que 10. .............................................................................................................22 8.2.2 - Deciso Composta ................................................................................................23 Algoritmo - 03: Ler dois valores numricos, efetuar a adio. Caso o valor somado seja maior ou igual a 10, este dever ser apresentado somando-se a ele mais 5, caso o valor somado no seja maior ou igual a 10, este dever ser apresentado subtraindo-se 7..................................................23 8.2.3 Seleo Mltipla ...................................................................................................24 Algoritmo - 04: Ler um nmero inteiro entre 1 e 4 e escrever o nmero por extenso correspondente: exemplo: Lido 1, ser apresentado um. Lido 2, ser apresentado dois etc..........25 8.3 Estruturas de Repetio ..........................................................................................27 8.3.1 Enquanto ... Faca - Estrutura com teste no Incio.................................................27 Algoritmo - 05: Apresentar o total da soma obtida dos cem primeiros nmeros inteiros (1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Enquanto ... Faca).........................27 8.3.2 Repita ... Ateque - Estrutura com teste no final ....................................................29 Algoritmo 06: Apresentar o total da soma obtida dos cem primeiros nmeros inteiros (1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Repita ... At)................................29 8.3.3 Para ... de ... ate ... Passo ... faca Estrutura com varivel de Controle..............30 Algoritmo - 07: Apresentar o total da soma obtida dos cem primeiros nmeros inteiros (1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Para .. Passo).................................30 9 - Concluso ...................................................................................................................31 Sumrio ............................................................................................................................32 Anexo - Bibliografia ..........................................................................................................34 Anexo - Listas de Exerccios ............................................................................................35 1 Lista de Exerccios .....................................................................................................................35 2 Lista de Exerccios .....................................................................................................................35 3 Lista de Exerccios .....................................................................................................................36 4 Lista de Exerccios .....................................................................................................................37 5 Lista de Exerccios .....................................................................................................................38 6 Lista de Exerccios .....................................................................................................................38 7 Lista de Exerccios .....................................................................................................................38 8 Lista de Exerccios .....................................................................................................................39 9 Lista de Exerccios .....................................................................................................................39 10 Lista de Exerccios ...................................................................................................................39 11 Lista de Exerccios ...................................................................................................................40 12 Lista de Exerccios ...................................................................................................................40 13 Lista de Exerccios ...................................................................................................................41 14 Lista de Exerccios ...................................................................................................................42 15 Lista de Exerccios ...................................................................................................................42 33
Anexo - Bibliografia
Bibliografia bsica recomendada: Manzano, J. A. N. G., Oliveira, J. F.: Algoritmos Lgica para o Desenvolvimento da Programao. 10. Ed. So Paulo: rica, 2001. Bibliografia complementar: Puga, S., Rissetti, G. Lgica de programao e estruturas de dados - com aplicaes em Java. So Paulo: Prentice Hall, 2004. Lopes, A., Garcia, G.: Introduo Programao 500 Algoritmos resolvidos. Rio de Janeiro: Campus, 2002. Apostilas consultadas para confeco desta apostila: ________. Algoritmo e Lgica de Programao. Natal: Universidade Federal do Rio Grande do Norte - Departamento de Engenharia de Computao e Automao, 2004. Agosti, C. Curso Tecnlogo em Informtica - Prof. - Apostila de Pascal. Xanxer: Universidade do Oeste de Santa Catarina Unoesc, 2001. Costa, R.; Paradzinski, A. Apostila de Lgica de Programao. Curso Tcnico em Processamento de Dados. Egypto, C. Introduo Programao. Joo Pessoa: Asper Associao Paraibana de Ensino Renovado - Faculdade Paraibana de Processamento de Dados - Curso de Tecnologia em Processamento de Dados, 2004. Egypto, C. Linguagens e Tcnicas e Programao I. Joo Pessoa: Asper Associao Paraibana de Ensino Renovado - Faculdade Paraibana de Processamento de Dados Curso de Tecnologia em Processamento de Dados, 1998. Mandaguari, C. B. M. Apostila da Disciplina de Anlise de Algoritmos. Faculdade de Filosofia, Cincias e Letras de Mandaguari - Departamento de Informtica, 2004. Mazer Jr, A. Curso Tcnico em Informtica Disciplina de Tcnicas de Programao I. Ponta Grossa : Senai - Servio Nacional de Aprendizagem Industrial. Moraes, P. S. Curso Bsico de Lgica de Programao. Unicamp - Centro de Computao - Lgica de Programao. Shine, C. Y. A Torre de Hani. Artigo baseado em aula ministrada na IV Semana Olmpica, Salvador: Colgio Etapa. Tonin, N. Apostila de Algoritmos e Estrutura de Dados I. Erechim: Universidade Regional Integrada do Alto Uruguai e das Misses - URI Campus de Erechim - Curso de Graduao em Cincia da Computao, 2005.
34
1 Lista de Exerccios
Montar em Descrio Narrativa, Fluxograma e Portugol. 1 - Crie uma seqncia lgica para tomar banho. Verificar o que fazer se acabar a gua. 2 - Descreva com detalhes a seqncia lgica para Trocar um pneu de um carro. Verificar se tem estepe. 3 - Faa um algoritmo que crie um suco de acerola. Caso no tenha acar substituir por adoante.
2 Lista de Exerccios
Utilizando linguagem natural, fluxogramas e Portugol, resolver os seguintes problemas: 1 - Um homem precisa atravessar um rio com um barco que possui capacidade de carregar apenas ele mesmo e mais uma de suas trs cargas, que so: um lobo, um bode e um mao de alfafas. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas? 2 - Construa um algoritmo que mostre todos os passos que voc segue para escolher o tipo de roupa com que vai sair, aps levantar, levando em considerao apenas o tempo (bom, nublado, chuvoso) e a temperatura (quente, moderado, frio). 3 - Elabore um algoritmo que mova trs discos de uma Torre de Hani, que consiste em trs hastes (a - b - c), uma das quais serve de suporte para trs discos diferentes (1 - 2 3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo transferir os trs discos para outra haste. Simulao no site: http://www.npd.ufes.br/hanoi 4 - Trs jesutas e trs canibais precisam atravessar um rio; para tal, dispem de um barco com capacidade para duas pessoas. Por medidas de segurana no se permite que em alguma margem a quantidade de jesutas seja inferior de canibais. Qual a seqncia de passos que permitiria a travessia com segurana?
35
3 Lista de Exerccios
Favor entregar esta lista nesta prpria folha (obrigatrio) 1 - Classifique os dados especificados abaixo de acordo com seu tipo, assinalando com I os dados do tipo Inteiros, com R os Reais, com A os Alfanumrico, com B os lgicos (Booleanos). Deixe em branco aqueles para os quais no possvel definir a priori um tipo de dado.
( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( " ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) .v. " logico " 7094 F 2X .falso. " verdadeiro " .verdadeiro. y3 + 56 .F. " 01053-067 " "f " ! 89.41 " fone$res " - 7.05706 "-6" ate_que ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) " Boa sorte " + 805 #fone_com 1584 - 54.01 " 14 " -1 "o" .V. 18 .F. 0 x2 8.55551 18 " 15 " 0,8 28B - 1.0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) 156 " 6RN " " 11.06 " - 123 " Prova1 + 2 " " 15 " " CARACT " VAR .falso. 111.3500089 " zero " 28B - 1.0n " 156 + 200 " - 16.087 " constante " alfanumerico RESULT= - 18
3 - Assinale com um X os nomes vlidos para uma VARIVEL: Justifique o motivo quando for um nome invlido:
( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) z8ur8cmv 18log y3 R$ 85.05 PROVA 1 data15_03_2000 ShoppingMorumbi constante80.9 inicio " mediad " simpson@igo.com X fim laranja 12_reais Sul RAMAL O I A 5x var ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________ ____________________________________________
36
4 Lista de Exerccios
Favor entregar esta lista nesta prpria folha (obrigatrio) 1 - Assinale com X os identificadores corretos e explique o que est errado nos identificadores incorretos.
( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ) valor _____________________________________________________ ) _b248 _____________________________________________________ ) nota*do*aluno_____________________________________________________ ) a1b2c3 _____________________________________________________ )3x4 _____________________________________________________ ) km/h _____________________________________________________ ) xyz _____________________________________________________ ) nome empr _____________________________________________________ ) sala_215 _____________________________________________________ ) nota _____________________________________________________ ) ah! _____________________________________________________ ) abc _____________________________________________________ ) AB/C _____________________________________________________ ) 123a _____________________________________________________ ) 080 _____________________________________________________ ) DBAC _____________________________________________________ ) xyz _____________________________________________________ ) A_B-C _____________________________________________________ ) U2 _____________________________________________________ ) A123 _____________________________________________________ ) Cos *4 _____________________________________________________ ) SENAO _____________________________________________________
2 - Classifique os dados especificados abaixo de acordo com seu tipo, assinalando com I os dados do tipo inteiro, com R os reais, com L os literais, com B os lgicos (booleanos), e com N aqueles para os quais no possvel definir a priori um tipo de dado.
( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ) 0.21 )1 )V ) 0. ) 1% ) Jos ) 0,35 ) .F. ) -0.001 ) .T. ) +3257 ) a ) +3257 ) +3257. ) -0.0 ) .F. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( )-3 ) .V. ) .V ) abc )F )C ) Maria ) +36 )0 ) + 36 ) +3257 ) F ) 1 ) + 32 ) +3257 ) 'F' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ) 0,0 ) - 0,001 ) -0,0 ) .V. ) 0 ) + 0,05 ) .V. ) F ) -1 ) + 3257 ) V ) -32 ) a ) abc ) -1,9E13 ) '0'
1) result <2) result <3) result <4) result <5) result <6) result <-
37
5 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - Criar um programa que efetue a leitura de quatro valores numricos. Faa a operao de soma entre os quatro valores e apresente o resultado obtido. 2 - Desenvolver a lgica para um programa que efetue o clculo da rea de uma circunferncia e do tringulo apresentando a medida das reas calculadas. 3 - Calcular e apresentar o valor do volume de uma lata de leo, utilizando a frmula: VOLUME = pi * R2 * ALTURA. 4 Ler o nome e o endereo de uma pessoa. Apresentar em tela novamente.
6 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - Efetuar a leitura de um nmero inteiro e apresentar o resultado do quadrado deste nmero. 2 - Efetuar o clculo da quantidade de litros de combustvel gastos em uma viagem, utilizando-se um automvel que faz 12 km por litro. Para obter o clculo, o usurios dever fornecer o tempo gasto na viagem e a velocidade mdia durante a mesma. 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 = DISTANCIA / 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. 3 - Efetuar o clculo do valor de uma prestao em atraso, utilizando a frmula: PRESTAO = VALOR + (VALOR * (TAXA / 100) * TEMPO). 4 - Dados dois nmeros inteiros, trocar o contedo desses nmeros.
7 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - O cardpio de uma lanchonete dado abaixo. Prepare um algoritmo que leia a quantidade de cada item que voc consumiu e calcule a conta final. Hambrguer R$ 3,00 Cheeseburger R$ 2,50 Fritas R$ 2,50 Refrigerante R$ 1,00 Milkshake R$ 3,00 2 - Dados dois nmeros inteiros, achar a mdia aritmtica entre eles. 38
3 - Escreva um algoritmo que tenha como entrada nome, endereo, sexo, salrio. Aps llos, apresente ao usurio os valores digitados. 4 - Fazer a transformao de um valor em dlar, para a moeda corrente do Brasil.
8 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - Ler dois valores numricos, efetuar a multiplicao entre eles, e apresentar o resultado caso o valor multiplicado seja maior ou igual que 5000. 2 - Efetue o clculo do reajuste de salrio de um funcionrio. Considere que o funcionrio dever receber um reajuste de 15% caso seu salrio seja menor que R$ 500,00, se o salrio foi maior ou igual a R$ 500,00 mas menor ou igual a R$ 1000,00, seu reajuste ser de 10%, caso seja ainda maior que R$ 1000,00, o reajuste dever ser de 5%. 3 - Efetuar a leitura de um valor 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.
9 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - Ler 4 notas escolares de um aluno e imprimir uma mensagem dizendo que o aluno foi aprovado, se o valor da mdia for maior ou igual que 7. Caso o contrrio, solicitar a nota do exame final, somar com o valor da mdia e obter a nova mdia. Se a nova mdia for maior ou igual a 5, apresentar uma mensagem que o aluno foi aprovado em exame. Se o aluno no foi aprovado, indicar uma mensagem informando esta condio. Apresentar com as mensagens o valor da mdia do aluno, para qualquer condio. 2 - Conhea trs nmeros inteiros, e informe qual o maior. Exibi-los depois em ordem crescente. 3 - Construa um algoritmo que verifique a validade de uma senha fornecida pelo usurio. A senha vlida deve ser igual a cachorro.
10 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - Ler um nmero inteiro entre 1 e 9 e escrever o nmero por extenso correspondente: exemplo: Lido 1, ser apresentado um. Lido 2, ser apresentado dois etc. 2 - Ler um nmero inteiro entre 1 e 12 e escrever o ms correspondente. Caso o usurio digite um nmero fora desse intervalo, dever aparecer uma mensagem informando que no existe ms com este nmero. 39
3 - Uma faculdade atribui menes aos alunos conforme a faixa de notas que tenha atingido: 9,0 a 10: SS (superior) 7,0 a 8,9: MS (mdio superior) 5, 0 a 6,9: MM (mdio) 3,0 a 4,9: MI (mdio inferior) 0,1 a 2,9: II (inferior) 0: SR (sem rendimento). Faa um programa que l a nota e informa a meno.
11 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - Imprimir todos os nmeros de 1 a 100. 2 - Imprimir os mltiplos de 5, no intervalo de 1 a 500. 3 - Apresentar os quadrados dos nmeros inteiros de 15 a 200. 4 - Elaborar um programa que apresente o valor de uma potncia de uma base qualquer elevada a um expoente qualquer, ou seja, de NM.
12 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - Apresentar as potncias de 3 variando de 0 a 15. Deve ser considerado que qualquer nmero elevado a zero 1, e elevado a 1 ele prprio. Dever ser apresentado, observando a seguinte definio: 30 = 1 31 = 3 32 = 9 (...) 315 = 14348907 2 - Criar um algoritmo que imprima todos os nmeros de 1 a 100 e a soma deles. (1 + 2 + 3 + 4 + 5 + 6 + 7 + etc. + 97 + 98 + 99 + 100). 3 - Apresentar os resultados de uma tabuada de um nmero qualquer. Esta 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
40
13 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - Escrever um algoritmo que calcule a mdia dos nmeros digitados pelo usurio, se eles forem pares, termine a leitura se o usurio digitar 0 (zero) e mostre o resultado final. 2 - Fazer um programa para imprimir o conceito de um aluno, dada a sua nota. Supor notas inteiras somente. O critrio para conceitos o seguinte: - nota inferiores a 3 - conceito E; - nota de 3 a 5 - conceito D; - notas 6 e 7 - conceito C; - notas 8 e 9 - conceito B; - nota 10 - conceito A. 3 - Ler vinte valores e contar quantos deles so maiores que 1000. 4 Faa um algoritmo que exiba os nmeros pares entre 1000 e 0, nessa ordem, usando a estrutura para. 5 - Dado um conjunto de nmeros inteiros, obter a soma e a quantidade de elementos. 6 - Desenhar o Fluxograma para o seguinte programa codificado em Portugol: Algoritmo SALARIOCOMREAJUSTE Var SAL: Real SALREAJ: Real Inicio leia SAL se (SAL < 500) entao SALREAJ (SAL * 1.15) senao se (SAL <= 1000) entao SALREAJ (SAL * 1.10) senao SALREAJ (SAL * 1.05) fimse fimse escreva SALREAJ FimAlgoritmo 7 - Programa Seu nome Voc digita seu nome na tela e apresenta como resposta (em tela novamente) o que voc digitou. Formato da tela: ___________________________________ Digite seu nome: ______________ Seu nome : ______________ ___________________________________
41
14 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - Faa um programa para gerar e exibir os nmeros inteiros de 20 at 10, decrescendo de 1 em 1. 2 - Calcule o fatorial de um nmero qualquer. Exemplo: Se o valor lido for 5. O fatorial de 5! : 5 x 4 x 3 x 2 x 1. Exemplo: Se o valor lido for 150. O fatorial de 150! : 150 x 149 x 148 x ... 3 x 2 x 1. Se o nmero for zero, o fatorial de 0! tem como resultado 1. 3 - Escreva um algoritmo que escreva 15 vezes o nome do seu time preferido. O valor deve ser inserido pelo usurio. Ao final, apresentar tambm: "O melhor time do sculo!". 4 - Escreva um algoritmo que calcule a soma e a mdia dos salrios dos funcionrios de uma empresa. O programa termina quando o usurio digitar um salrio menor que 0.
15 Lista de Exerccios
Desenvolva os algoritmos nas 3 formas de representao: Descrio Narrativa (Planejamento e Projeto), Fluxograma e codificao em Portugus Estruturado (Portugol) dos seguintes programas: 1 - Realizou-se uma pesquisa para determinar o ndice de mortalidade infantil em um certo perodo. Construa um algoritmo que leia o nmero de crianas nascidas no perodo e, depois, num nmero indeterminado de vezes, o sexo de uma criana morta (masculino, feminino) e o nmero de meses da vida da criana. Como finalizador, teremos a palavra fim no lugar do sexo da criana. Determine e imprima: - a porcentagem de crianas mortas no perodo; - a porcentagem de crianas do sexo masculino mortas no perodo; - a porcentagem de crianas que viveram dois anos ou menos no perodo. 2 - Recebendo quatro mdias bimestrais, calcule a media do ano (ponderada), sabendo que o 1 bimestre tem peso 1, o 2 bimestre tem peso 2, o 3 bimestre tem peso 3 e o 4 bimestre tem peso 4. Sabendo que para aprovao o aluno precisa ter uma mdia anual maior ou igual a 7, escreva uma mensagem indicando se o aluno foi aprovado ou reprovado. Observao: Mdia anual = (1 bimestre * 1+ 2 bimestre * 2 + 3 bimestre * 3 + 4 bimestre * 4) / (1+2+3+4) 3 - Escreva um programa para ler o nome e o sobrenome de uma pessoa e escrev-los na seguinte forma: sobrenome seguido por uma vrgula e pelo nome. Exemplo: entrada: "Antonio","Soares" sada: Soares, Antonio 4 - Deseja-se calcular a conta de consumo de energia eltrica de um consumidor. Para isto, escreva um programa que leia o cdigo do consumidor, o preo do Kw e a quantidade de Kw consumido, e exiba o cdigo do consumidor e o total a pagar. - total a pagar = preo x quantidade - total a pagar mnimo = R$ 11,20 42