Sunteți pe pagina 1din 78

PROJETO E-JOVEM APOSTILA ALGORITMOS

Projeto E-JOVEM NDICE 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 2 3. ALGORITMO NO COTIDIANO: ..................................................... ............................................................ 4 MELHORIAS NO ALGO RITMO: ......................................................................... ....................................... 5 ALGORITMO ESTRUTURADO: ............... ................................................................................ .................. 6 LINGUAGEM DE PROGRAMAO: ..................................... .................................................................... 8 ITENS FUN DAMENTAIS: ..................................................................... ...................................................... 10 EXPRESSES ARITMTICAS ... ................................................................................ ............................... 14 EXPRESSES LITERAIS ........................... ................................................................................ ................. 17 ESTRUTURA SEQENCIAL E CONDICIONAL SIMPLES .................. ................................................ 20 ANINHAMENTO DE SE ESTRUTURA CONDICIONAL SIMPLES II ............................................. 21 ESTRUTUR A CONDICIONAL COMPOSTA I ....................................................... ................................. 22 ESTRUTURA CONDICIONAL COMPOSTA II ......... .............................................................................. 2 2 ESTRUTURA DE REPETIO DETERMINADA................................................ ................................... 23 ESTRUTURA DE REPETIO INDETERMINADA ........ ...................................................................... 25 COMBIN ANDO ESTRUTURA DE REPETIO E ESTRUTURA CONDICIONAL ......................... 28 VAR IVEIS COMPOSTAS HOMOGNEAS ........................................................ ................................... 28 VARIVEIS COMPOSTA HETEROGNEAS - REGISTROS . ............................................................ 30 ARQUIVOS ....... ................................................................................ ............................................................. 31 SUBROTINA ..... ................................................................................ ............................................................. 34 FUNO: ........... ................................................................................ ............................................................ 35 EXERCCIOS RESOLVI DOS ............................................................................ ......................................... 37 FIM ALGORITMO ..................... ................................................................................ .................................. 47 RESPOSTA.................................. ................................................................................ ................................... 59 EXERCCIOS PROPOSTOS ...................... ................................................................................ ................. 73 3

Projeto E-JOVEM

1. Algoritmo no Cotidiano: No nosso dia a dia comum termos que realizar aes para a lcanarmos determinados resultados, s vezes realizamos essas aes de forma coordenada ou de forma no ordenada, com isso surge a questo se sabermos diferenciar um fato i mprevisvel de uma ao. Definio: o Ao: um evento que tem um estado inicial, um perodo empo finito e que produz um resultado esperado. o Fato imprevisvel: uma situao que acontece sem que haja um tempo e tambm um resultado definido. Para que seja possve l a execuo de uma ao de forma eficiente, os passos devem ser descritos de forma clar a. Um exemplo para um melhor entendimento seria a contagem de de letras de uma p alavra qualquer, vamos aos passos: o Escolher a palavra; o Contar quantas letras ela possui o Escrever o resultado. Sendo assim por definio temos que o conjunto d esses passos necessrios para se realizar uma ao denominado Algoritmo. Algoritmo: um a seqncia de instrues ordenadas e que, se corretamente seguida, produz um resultado previsvel. Algumas aes do nosso dia a dia como: fazer um bolo, tomar banho, trocar uma lmpada seguem procedimentos padres para chegar a um objetivo. Podemos assim co nsider-los como algoritmos do nosso cotidiano. 4

Projeto E-JOVEM

2. Melhorias no Algoritmo: Quando somos encarregados de realizar uma determinada ao sempre tentamos melhorar a forma de execuo dessa ao, buscando talvez a realizao e m tempo menor ou melhorar a qualidade naquilo que se busca. O mesmo se aplica ao s algoritmos, nunca devemos interpret-los como definitivos, sempre podero ser melh orados. Voc deve estar se perguntando por que melhorar um algoritmo? Nem sempre o s algoritmos esto descritos de forma que possam ser compreendidos ou esto gerando resultados no esperados, quando isso acontecer eles devem ser refeitos ou detalha dos em mais instrues. Analise o seguinte algoritmo de receita de bolo: o Adicione os seguintes ingredientes: Ovos; Farinha de Trigo; Leite; Acar; Fermento em p; o Mi sture o Leve ao Forno Voc acha que com essas informaes teramos um bolo ao final? A r esposta no, pois no vou poder fazer um bolo apenas colocando os ingredientes, prec iso definir as medidas dos ingredientes para chegarmos corretamente ao bolo, o n osso algoritmo ficaria melhor da seguinte forma: Adicione os seguintes ingredien tes: o 4- Ovos; o 2 copos e meio de farinha de trigo; o 1 copo de leite; o 2 cop os e meio de acar; o 1 colher de fermento em p; Misture Leve ao Forno por 25 minuto s. Mas ele est perfeito? Provavelmente um cozinheiro profissional poderia melhor-l o. 5

Projeto E-JOVEM 2.1 Caractersticas de um algoritmo Definio Exata: Para que um algoritmo seja consid erado exato deve descrever todas as instrues de forma clara e tambm nunca deixar dvi da no que para ser feito. Eficincia: Buscar sempre o menor tempo possvel para a ex ecuo das atividades e tambm utilizar de forma inteligente os recursos disponveis. Um algoritmo de qualidade deve reunir essas duas caractersticas. Uma boa estratgia para desenvolver um algoritmo : 1. Entender o problema completamente; 2. Descrev er todos os mnimos detalhes; 3. Detalhar o problema de forma seqencial. 3. Algorit mo Estruturado: Todo algoritmo deve ser escrito de forma clara e precisa e com i sso muito importante que ele seja escrito seguindo um padro de forma que possa se r interpretado por todos. Abaixo mostramos informaes bsicas de um algoritmo: Nome: Variveis: Identificador do programa Variveis que so utilizadas no programa Procedimentos: procedimentos que podem ser utilizados no programa Funes: Funes que p odem ser utilizados no programa Bloco de Aes: As aes que o programa vai executar. Mostramos abaixo um exemplo de um algoritmo padro estruturado, a linguagem que vamos utilizar a partir daqui o PORT UGOL (Pseudo_liguagem criada para tornar o ensino da lgica de programao o mais simp les possvel), segue: 6

Projeto E-JOVEM Receita do Bolo: Algoritmo Receita_Bolo Variveis panela,ovos,copo_farinha,copo_ac ucar,copo_leite,colher_fermento Procedimentos misture, leve_ao_forno Funes espere Inicio ovos:= 4; copo_farinha:=2; copo_acucar:=1; copo_leite:=1; panela:= ovos+c opo_farinha+copo_acucar+copo_leite; misture leve_ao_forno espere 25 fim 3.1. Etapas para a construo de algoritmo o Problema: Identificar o problema o prim eiro passo no processo de construo de algoritmo; o Anlise: Entender o problema prim ordial para a resoluo do mesmo. o Desenvolvimento da soluo: Desenvolvimento do algor itmo; o Testes: Executar o algoritmo com dados conhecidos para obter um resultad o esperado; o Alteraes: Realizar alteraes buscando sempre a velocidade e qualidade; o Algoritmo Final; 7

Projeto E-JOVEM Voc deve estar se perguntando como vou poder testar se meu algoritmo est correto o u no? Existem alguma tcnicas para realizar testes em algoritmo. Abordaremos a tcnic a do Chinesinho Chinesinho: Consiste em executar fielmente o que est escrito no algoritmo, utliza ndo papel e caneta onde anotamos os valores inseridos e modificados pelo program a e ao final da execuo saberemos se o resultado realmente o esperado. Exemplo: Algoritmo Soma Variveis a: inteiro b: inteiro Inicio Escreva Digite o val or de a: Receba a; Escreva Digite o valor de b: Receba b; Fim imprima a+b // ness e momento a = 0 // valor digitado pelo usurio a = 3 // nesse momento b = 0 // val or digitado pelo usurio b = 2 // Resultado do algoritmo = 5 Como sabemos a soma de 3+2 = 5, ento o conclumos que o algoritmo est correto. 4. Linguagem de Programao: Uma linguagem de programao um mtodo padronizado para expre ssar instrues para um computador, atravs da linguagem o programador pode definir pr ecisamente o que o computador ir executar num determinado momento. 8

Projeto E-JOVEM 4.1. Tipos de Linguagem Abaixo listamos os tipos de linguagens separados por seu tipo de paradigma de programao. o Linguagem Natural; o Linguagem de programao estru turada; o Linguagem Funcional; o Linguagem de programao lgica; o Linguagem de Progr amao Orientada a Objetos (o.o); Vamos explicar apenas os tipos de linguagens mais importantes e mais utilizados na prtica. Linguagem de programao estruturada: a forma de programar que defende que todos os programas podem ser escritos reduzidos a trs estruturas. 4.2. Estruturas: o Seqncia o Deciso o Iterao Abaixo temos uma lista das linguagens de programao estruturada mais conhecidas no mercado: PASCAL CLIPPER C VISUAL BASIC DELPHI Podemos afirmar que a programao estruturada ainda marcantemente influente, uma vez que grande parte das pessoas ainda aprendem programao atravs dela. 9

Projeto E-JOVEM 4.3. Linguagem de Programao Orientada a Objetos (P.o.o) Para muitos uma linguagem complicada de se entender, para outros a melhor forma de expressar a vida real e m um programa de computador. Definio: um paradigma de anlise, projeto e programao de sistemas de software baseado na composio e interao entre diversas unidades de software chamadas de objetos. No vamos nos prolongar no estudo da Programao Orientada a Objetos nesta apostila, p ois esse assunto ser abordado em outro momento. Abaixo temos uma lista das linguagens de programao Orientada a Objetos mais conhec idas no mercado: RUBY PYTHON SMALTALK C++ C# JAVA Por exigir formas de pensar relativamente complexas, a programao orientada a objet os at hoje ainda no bem compreendida ou usada pela maioria. 5. Itens Fundamentais: Para podermos prosseguir com nossos estudos adotaremos al gumas convenes e conjuntos de regras. importante saber que essas regras no so univer sais, mas serviro para facilitar nossos estudos. 10

Projeto E-JOVEM

5.1. Constantes: Entende-se por uma informao constante, aquela que no sofre nenhuma alterao no decorrer do tempo e em um algoritmo no diferente uma constante nada mai s que um valor utilizado pelo algoritmo e que no sofre alteraes no decorrer da exec uo do programa. As constantes podem ser: Numrica: 1. O uso de uma constante numrica deve seguir o padro decimal, podendo no existir a parte fracionria. Exemplos: a) 45 b) 13,9 c) 1001,5 2. Em caso de constantes com exponencial, usaremos o smbolo ^ para indicar o valor exponencial. Exemplos: a) 5^3 b) 2^2. 3. Podem ser negativa s e positivas de acordo com o sinal informado, quando no houver sinal ser positiva . Exemplos: a) 20 b) -20 c) -32,5 Lgica: S podero ter dois valores Verdadeiro ou Fa lso, veremos a melhor utilizao em estrutura condicionais mais adiante. Literal: Po der conter qualquer conjunto de caracteres, letras, nmeros ou smbolos. Como regra u saremos o valor constante entre aspas duplas . Exemplos: a) 20 b) educandus c) e-jovem ) falso (Apesar de Falso ser um valor para constante lgica, um literal por estar en tre aspas ). 11

Projeto E-JOVEM 5.2. Variveis: So espaos de memria que so alocados para armazenar informaes, um valor u expresso. 5.3. Por que se precisa de variveis? R: Para armazenar valores que sero utilizados posteriormente. Ex.: em um clculo complexo, resultados intermedirios p odem ser armazenados e posteriormente processados para se obter o resultado fina l. Uma varivel s pode existir quando lhe associada uma nome, chamado de Identificado r. Toda varivel precisa ter um identificador. Os identificadores seguem regras para sua construo, so elas: Pode ser formado por q ualquer caracter; O primeiro caracter dever ser sempre uma letra. No permitido o u so de caracteres especiais; Uma boa dica para voc sempre identificar a sua varivel de forma que represente aquilo que vai ser armazenado: ex: CODIGO, para armazen ar cdigo do cliente. Identificadores vlidos: a) AB b) A3b c) Nome Identificadores invlidos: a) 1AB b) A ? c) X+5 As variveis assim como as constantes podem ser : numricas, literais e lgic as. Declarao de Variveis: para que os programas manipulem valores, estes devem ser arma zenados em variveis e para isso devemos declar-las seguindo um padro: 12

Projeto E-JOVEM No instante de declarao devemos identificar o tipo de dado que ir ser armazenado na varivel. Ex: Declare valor_matricula NUMERICO; Neste exemplo foi informado que a varivel valor_matricula s poder receber dados numricos. 5.4. Comentrios: Quando escrevemos algoritmos longos e complexos natural que algu mas pessoas e at mesmo voc que desenvolveu o cdigo sinta dificuldade em entend-lo. Para evitar isso, devemos sempre comentar nossos cdigos de forma simples e mais c lara possvel. Explicando funcionalidades do cdigo. Para fazer uso dessa tcnica basta colocar // e em seguida a frase desejada. Para fazer comentrios em varias linhas use /* contedo */. Exemplos: o Declare codigo NUMERICO //codigo, armazenar um cdigo do tipo numrico. o /* as variveis codigo e valor_mensalidade armazenaro tipos numrico */ Declare cod igo, valor_mensalidade NUMERICO; 13

Projeto E-JOVEM 6. Expresses Aritmticas A traduo das expresses aritmticas para linguagem de computador , geralmente acontece da mesma forma que a usada na matemtica salvo algumas excees, vamos aos exemplos: A+B Total desconto Mensalidade * 5 X/3 A*B+C // Adio //Subtrao //Multiplicao //Diviso // 1 Multiplicao e 1 adio

Observao: Na operao de multiplicao no se pode omitir o operador * e nem mesmo faze do . XY +B X.Y+B X*Y + B //Errado //Errado // Correto

6.1. Prioridade a ser obedecida entre os operadores: 1. Operando de multiplicao ou diviso na ordem em que aparecerem. 2. Operando de Adio ou Subtrao na ordem em que ap arecerem. 3. Em expresses que contm parnteses, a prioridade resolver as expresses co ntidas neles. 6.2. Funes: Funes descrevem relaes matemticas especiais entre os objetos s vezes nos deparamos com problemas maiores que precisa ser decomposto em partes menores. Essas partes menores podem ser chamados repetidamente ao longo da exec uo do programa e para evitar a repetio e organizarmos melhor nosso cdigo criamos trec hos de cdigos que podemos chamar de Funo, Subrotina ou Procedimento. Algumas funes: A RREDONDA(arg) TRUNCA(arg) RESTO(arg1,arg2) EXP(arg1,arg2) Obs: Lembre-se que voc poder criar sua prpria funo ou subrotina. 14

Projeto E-JOVEM

Exemplos do uso de funes no cdigo: A + RESTO(7,2) 5 + EXP(2,8) A + B * ARREDONDA(Y) 6.3. Operadores Definio: so elementos fundamentais que atuam sobre operandos e pro duzem determinado resultado. Na espresso 3 + 2, o 3 e o 2 so operandos e o sinal d e `+' o operador. Operadores Unrios: operadores que atuam sobre um nico operando. Ex: -3 -1 Operadores Binrios: operadores que atuam sobre 2 operandos. Ex: 3 + 2 5*3 O utra classificao para os operadores quanto ao tipo de dados que manipulam e o valo r resultando de sua avaliao. Operadores Lgicos (booleanos): so operadores para avali ar expresses lgicas e que devolvem como resultado valores lgicos. NO E OU Ex: NO e essao1 Expressao1 E Expressao2 Expressao1 OU Expressao2 //negao // e lgico ou conju no //ou lgico ou disjuno //prioridade 1 //prioridade 2 //prioridade 3 15

Projeto E-JOVEM Operadores Relacionais: MAIOR QUE MENOR QUE MAIOR OU IGUAL MENOR OU IGUAL IGUAL DIFERENTE Tabela verdade: A Tabela verdade uma tabela matemtica usada em lgica par a determinar se uma expresso verdadeira e vlida. Pode mos cheg ar as segui ntes co ncl uses ao analisar a tabela verdade acima: 1. O operador lgico NO sempre inverte o valor do seu operando 2. para que uma operao lgica OU tenha resultado verdadeiro, basta que um dos seus operandos seja verdadeiro. 3. para que a operao lgica E tenh a resultado verdadeiro necessrio que seus dois operandos tenham valor lgico V. Forma s de representao: 16

Projeto E-JOVEM

7. Expresses literais Constantes Literais: As constante literais em computao geralm ente so representadas entre aspas duplas ou simples Ex: `Educandus' Variveis Literais: so variveis que assumem valores literais, ou seja, qualquer conjunto de caractere s alfanumricos. EX: A= EDUCANDUS 7.1. Concatenao A concatenao consiste em unir dois va ores, anexando sempre o segundo valor ao final do primeiro Considerao: o Caso um d os valores no seja literal ele ser convertido e o operador para realizar essa oper ao o +. Ex: SOL + DADO = SOLDADO 7.2. Operadores relacionais: so operadores binrios que devolvem valores lgicos, ver dadeiro ou falso. Estes operadores so somente usados quando se deseja realizar co mparaes. Confira abaixo os operadores relacionais. 17

Projeto E-JOVEM Exemplos: suponha que X igual a 8: X <= 3 X<3 //falso //verdadeiro

Comando de Atribuio: Este comando nos permite fornecer um valor a uma certa varivel , onde o tipo de informao deve ser compatvel com o tipo de varivel utilizada, ou sej a, somente poderemos atribuir Pedro a uma varivel do tipo caractere. Este comando r epresentado pelos sinais (=, := ou Veja abaixo o seguintes exemplos: Comandos Vli dos DECLARE a,b NUMERICO DECLARE x,y LITERAL A=6+2 ; B=53; Comandos Invlidos DECL ARE a,b NUMERICO DECLARE x,y LITERAL A=6+2; B=53; X=30; Y = 5 + 4; X=Educandus; Y = so + dado; ); Comandos de Entrada e Sada: Todo programa executado em um computador (salvo algum as excees) consiste de trs etapas ou pontos de trabalho: a entrada de dados, o seu processamento e a sada dos mesmos. Para realizarmos essas aes devemos usar os coman dos de entrada LEIA() e comandos de sada ESCREVA(). Esses comandos independem do dispositivo utilizado (teclado, discos, impressora, monitor, etc.); Para cada ti po de dispositivo existe um comando especfico: Dispositivo de Entrada : Dispositi vo de Sada: LEIA() ESCREVA() 18

Projeto E-JOVEM Comandos de Entrada: A entrada de dados inseridos pelos usurios ser feita atravs da instruo LER(),que transfere para a memria (variveis) os dados que os programas iro u tilizar. Sintaxe: o o o o Exemplo: ALGORITMO entrada_de_dados DECLARE preo_unit, quant, pr eco_total NUMERICO INICIO LER (preo_unit, quant); preco_total = preo_unit * quant; ESCREVER (preco_total); FIM ALGORITMO entrada_de_dados; Comandos de Sada: consis te no comando pelo qual a informao contida na memria seja colocada nos dispositivos de sada. Sintaxe: o o o o Observao: O comando ESCREVER indica sada no monitor; O co mando IMPRIMIR indica sada na impressora; Exemplo: ALGORITMO saida_de_dados DECLA RE preo_unit, quant, preco_total NUMERICO INICIO preo_unit = 5.0; quant = 10; 19 E SCREVER OU IMPRIMEIR Parnteses ( ) Identificador e/ou expresso: Ponto e virgula; / /comandos de sada. //de uso obrigatrio //dados a serem exibidos //determinao do fim do comando. LER Parnteses ( ) Identificador: Ponto e virgula; //comando de leitur a. //de uso obrigatrio //nome da varivel a ser lida //determinao do fim do comando.

Projeto E-JOVEM preco_total = preo_unit * quant; ESCREVER (preco_total); FIM ALGORITMO saida_de_d ados;

8. Estrutura seqencial e condicional simples Os algoritmos assim como os comandos seguem regras para serem terem sua estrutura escrita. Veja a ordem 1. Declarao de variveis e em seguida os comandos; 2. Devero ser executados de cima para baixo; 3 . Sempre que formos iniciar nossos algoritmos, usaremos a palavra ALGORITMO e ao final utilizaremos a palavra FIM ALGORITMO. O nome do algoritmo pode ser descri to ou no. a. Ex: ALGORITMO teste FIM ALGORITMO teste; 8.1. Estrutura condicional Caso lhe fosse pedido para escrever um algoritmo que receba duas notas e no fina l escreva as notas que forem maiores que 6, certamente voc encontraria dificuldad e para a criao desse algoritmo. Isto porque encontramos um problema condicional e para resolver esse problema voc deve fazer uso de uma estrutura condicional. A es trutura condicional permite que um bloco de comandos seja executado se uma condio lgica for satisfeita, ou seja, a estrutura condicional s ir executar o bloco intern o se a condio tiver o valor verdadeiro. Notao estrutura condicional: SE (<condio lgica ) ENTAO <comando1> <comando2> <comando3> fimse 20

Projeto E-JOVEM Exemplo: ALGORITMO DECLARE nota1, nota2 NUMERICO INICIO LER(nota1, nota2); SE (n ota1>6) ENTAO ESCREVER (A nota 1 maior que 6 e o seu valor : , nota1); fimse SE (no ta2>6) ENTAO ESCREVER (A nota 2 maior que 6 e o seu valor : , nota2); fimse FIM ALGORITMO 9. Aninhamento de SE Estrutura Condicional Simples II Notao estrutur a condicional aninhada: SE (<condio lgica>) ENTAO <comando1> <comando2> SE (<condio lg ica 2>) ENTAO <comando3> fimse fimse Exemplo: Neste algoritmo vamos receber trs valores a,b,c e escrever o valor de a se for maior que b, e em seguida escreve o valor de b se for menor a e maior que c. ALGORITMO DECLARE a,b,c NUMERICO INICIO LER(a,b,c ); SE (a>b) ENTAO ESCREVER (O valor de A:, a); SE (b>c) ENTAO 21

Projeto E-JOVEM ESCREVER (O valor de B:, b); fimse fimse FIM ALGORITMO Observao: o segundo SE s testa se b maior que c, pois quando feita a primeira condio (a>b), exclui a necessidade se b menor que a. 10. Estrutura condicional composta I Notao estrutura condiciona l: SE (<condio lgica>) ENTAO <comando1> <comando2> SENAO <comando3> <comando4> fims e Exemplo: SE (x==y) ENTAO ESCREVER (x igual a Y); SENAO ESCREVER (x diferente de y) ; fimse O algoritmo s ir escrever (x diferente de y), se a expresso lgica for falsa.

11. Estrutura condicional composta II: Existem casos em que necessrio se estabele cerem verificaes de condies sucessivas. Quando uma ao executada, ela poder ainda est lecer novas condies, isso significa condies dentro de condies. Esse tipo de estrutura poder ter diversos nveis de condio, porm esse tipo de estrutura torna difcil o entendi mento do algoritmo. 22

Projeto E-JOVEM Notao estrutura condicional: se (<condio>) entao <comandos 1> senao se (<condio2>) ent ao <comandos 2> senao <comandos 3> fimse fimse

12. Estrutura de repetio determinada: Em vrios momentos, na programao, se torna neces srio repetir um trecho de um programa um determinado nmero de vezes. Nesse caso, p ode ser criado um lao de repetio que efetue o processamento de um determinado trech o, tantas vezes quantas forem necessrias. Os laos de repetio tambm so conhecidos por l oopings. 12.1. Classificao: Os laos so divididos em laos CONTADOS e laos CONDICIONAIS. o Variveis de Lao: com a utilizao de estruturas de repetio para a elaborao de algori s, torna-se necessrio o uso de dois tipos de variveis para a resoluo de diversos tip os de problemas: variveis contadoras e variveis acumuladoras. Variveis contadoras: uma varivel de controle, NUMERICA, que serve para controlar quantas vezes um determ inado trecho de programa foi executado. Inicialmente recebe um valor, geralmente 0 (ZERO), antes do inicio de uma estrutura de repetio e incrementada no interior da estrutura de uma valor constante, geralmente 1 Exemplo: ... cont = 0; <estrut ura de repeticao> ... cont = cont +1; ... <fim da estrutura de repetio> ... 23

Projeto E-JOVEM Variveis contadoras: uma varivel de controle, inteira, que serve para acumular val ores. Inicialmente recebe um valor, geralmente 0 (ZERO), antes do inicio de uma estrutura de repetio e incrementada no interior da estrutura de uma valor varivel , geralmente a varivel utilizada na estrutura de controle: Exemplo: ... cont = 0; <estrutura_de_repeticao_x> ... cont = cont +x; ... <fim_da_estrutura_de_repetio _ x> o Laos Contados ou Estrutura de Repetio Determinada: Damos esse nome quando conh ecemos a quantidade de vezes que o comando composto no interior do algoritmo ser executado. Sintaxe - Forma Geral 1 : para <variavel> = <valor_inicial> ate <valo r_final> faca <comando_unico> fim_para Exemplo: algoritmo para escrever 10 vezes a frase Pas: Brasil ALGORITMO repetio DECLARE i NUMERICO PARA i = 1 ate 10 FACA ESCR EVER (Pas: Brasil); FIM_PARA FIM_ALGORITMO repetio Sintaxe - Forma Geral 2 : para <va riavel> = <valor_inicial> ate <valor_final> faca <comando_composto> fim_para 24

Projeto E-JOVEM Exemplo: algoritmo para escrever 10 vezes a frase Pas: Brasil ALGORITMO repetio_2 DEC LARE i,par NUMERICO par = 0 PARA i = 1 ate 100 FACA ESCREVER (par); Par = par + 2; FIM_PARA FIM_ALGORITMO repetio_2 Exerccios resolvidos e propostos; 13. Estrutura de repetio indeterminada: Ao contrrio das estruturada de repetio determ inada os lanos condicionais no sabemos antecipadamente quantas vezes o corpo do lao ser executado. Tipos de Construo: as construes que implementam estruturas de repetio ndeterminadas so: o Enquanto Lao condicional com teste no incio; Caracterizado por uma estrutura que logo no inicio do lao efetua um teste lgico, para liberar a exec uo ou no dos comandos que se encontram no interior do lao. Sintaxe - Forma Geral 1 : ENQUANTO <condio> faca <comando_unico> fim_enquanto Sintaxe - Forma Geral 2 : ENQUANTO <condio> faca <comando_composto> fim_enquanto 25

Projeto E-JOVEM Nesse tipo de lao a varivel a ser testada deve possuir um valor associado antes da construo do lao. Semntica: No inicio da construo realizado um teste lgico se do for falso os comandos internos do lao condicional no sero executados e o algorit mo ira executar a prxima instruo ao final do lao. Caso o teste apresente resultado erdadeiro o comando interno executado e ao seu trmino retorna-se ao teste da cond io at que a mesma apresente resultado falso os comandos sero executados. Exemplo orma Geral 1: ALGORITMO condicional DECLARE soma, num NUMERICO num = 1; soma = n um; ENQUANTO (soma < 1000 ) faca ESCREVE (num) num = num + 1; soma = soma + num; fim_enquanto FIM_ALGORITMO condicional Exemplo - Forma Geral 2: ALGORITMO condi cional_2 DECLARE media, soma_notas, cont_alunos NUMERICO media = 0; soma_notas = 0; cont_alunos = 0; ENQUANTO (cont_alunos < =3 ) faca LER (7) soma_notas = soma _notas + notas (14+7); cont_alunos = cont_alunos + 1(2+1); fim_enquanto media = soma_notas/cont_alunos (21/3); ESCREVER (A mdia da turma : , media); FIM_ALGORITMO ondicional_2 26

o resu v F

Projeto E-JOVEM o Repita - Lao condicional com teste no final; Caracterizado por executar ao meno s uma vez os comandos internos ao lao e no final realizado um teste lgico verifica ndo se permitido ou no executar os comandos internos. Sintaxe: REPITA <comando_co mposto> ATE QUE <condicao> Nesse tipo de lao a varivel a ser testada pode ser inic ializada ou lida dentro do lao. Observao: Nos laos condicionais a varivel que testada tanto no inicio quanto no final do lao, deve sempre estar associada a um comando que a utilize no interior do lao. Caso isso no ocorra o programa ficar em loop inf inito; Semntica: Como j havia falado anteriormente o comando executado uma vez e e m seguida testado se pode ou no continuar a ser executado.. Se a condio for falsa o comando executado e o processo repetido at que a condio se torne falsa, quando so assim a execuo segue pelo comando imediato ao fim do lao. Exemplo - 1: ALGORITMO so ma_salario DECLARE soma, salario NUMERICO soma = 0; REPITA LER (salario); Soma = soma + salario; ATE QUE (salario < 0 ) ESCREVER (soma); FIM_ALGORITMO soma_sala rio 27

Projeto E-JOVEM 14. Combinando Estrutura de Repetio e Estrutura condicional 15. Variveis compostas homogneas: Os tipos homogneos so conjuntos do mesmo tipo bsico. A utilizao desse tipo de estrutura de dados recebe diversos nomes, tais como: variveis indexadas, compo stas, arranjos, tabelas em memria, arrays (do ingls) vetores e matrizes. 15.1. Var iveis compostas homogneas - Unidimensionais: Vetores Os vetores so uma lista de ele mentos do mesmo tipo. Todas as variveis e constantes ocupam um espao em memria. Est e espao ocupado um espao linear. Quando possumos uma ordem e um ndice de acesso aos elementos de um conjunto ento temos caracterizado um vetor. Exemplo: Declarao: DECLARE lista de identificadores [li:ls]t Onde: Lista de identificadores so: Li : Ls: T: // nome da varivel;

// o limite inferior do intervalo de variao dos ndices; // o limite superior do int ervalo de variao dos ndices; // o tipo dos componentes da varivel(numrico, literal, lg co) Obs: O limite superior no deve ser menor que o limite inferior; Exemplo 1: DECLAR E NOTA [1:10] NUMERICO; 28

Projeto E-JOVEM Exemplo 2: ALGORITMO vetor DECLARE moda[] NUMERICO; DECLARO i NUMERICO; INICIO i = 0; REPITA SE(i>7)ENTAO INTERROMPA; FIM SE Moda[i] = 2; i = i +1; FIM_REPITA E SCREVER (moda[1], moda[2], moda[3]); FIM ALGORITMO vetor 15.2. Variveis compostas homogneas - Multidimensionais: Nada mais so do que um conjunto de dados referenciado por um mesmo nome e que nec essita de mais de um ndice para ter seus elementos individualizados (ou referenci ados). As variveis compostas multidimensionais mais comuns so as Matrizes e tabela s, onde o primeiro ndice se refere ao numero linha e o segundo ao numero da colun a. Matrizes: A matriz mais comum a de duas dimenses (linha e coluna), por se rela cionar diretamente com a utilizao de tabelas. Trabalharemos somente com matrizes d e 2 dimenses, por serem mais comuns, mas podem ser necessrias, em algum momento, m atrizes de 3 ou mais dimenses. Declarao: DECLARE matriz [1:4,1:3] NUMERICO Onde: Co m essa declarao passa a existir uma matriz 4 x 3 = 12 elementos endereveis por um pa r de ndices, sendo o primeiro linha e o segundo coluna. 29

Projeto E-JOVEM 16. Variveis composta Heterogneas - Registros O conceito de registro visa facilita r o agrupamento de variveis que no so do mesmo tipo, mas que guardam estreita relao lg ica. Eles correspondem a conjuntos de posies de memria conhecidos por um mesmo nome e individualizados por identificadores associados a cada conjunto de posies. Cada componente individualizado pela explicitao de seu identificador. Declarao: DECLARE cadastro REGISTRO (nome, rua Literal numero,cep,cpf, NUMERICO Ht[1:3] NUMERICO n ascimento NUMERICO tem_dependente LOGICO) A referncia ao contedo do registro deve ser feita da seguinte maneira: <Identificador_do_registro>.<identificador_do_com ponente> Exemplo: 16.1. cadastro.nome; Registro de conjuntos Voc deve estar se perguntando seno seria possvel utilizar vetores e matrizes dentro de um registro? A resposta sim, isso possvel. Veja como fazer abaixo: Exemplo: D ECLARE cadastro REGISTRO (nome, Literal Cpf NUMERICO Ht[1:3] NUMERICO nascimento NUMERICO tem_dependente LOGICO) DECLARE endereco REGISTRO (rua Literal numero,c ep NUMERICO) O acesso aos dados se da mesma forma como j foi explicado acima do r egistro mais externo, depois o mais interno e finalmente o identificador do comp onente; 30

Projeto E-JOVEM

Analise o exemplo abaixo: ALGORITMO exemplo_reg DECLARE tabela[1:100] REGISTRO ( nome LITERAL, codigo NUMERO) DECLARE codigoDesejado, i, k NUMERICO LER (tabela[1 ]...tabela[100]); INICIO k=1; Enquanto (k<=500) faca LER (codigoDesejado); i=1; Enquanto ((tabela[i].codigo ! = codigoDesejado ) ou (i!=100)) faca i=i+1; Fim en quanto Se (tabela[i].codigo = = codigoDesejado) entao ESCREVER (codigoDesejado, tabela[i.].nome); Senao Escrever (Cdigo Invlido); Fim se k=k+1; Fim enquanto Fim alg oritmo exemplo_reg 17. Arquivos Tendo em vista a necessidade de armazenar pequen as informaes podemos fazer uso do trabalho com arquivos, ns podemos criar, acessar e delet-los. Para armazenar alguma informao no arquivo necessrio utilizar a funo de e crita no arquivo. Obs: essas operaes geralmente so muito demoradas e devemos ter mu ito cuidado ao utilizar, pois podem deixar nosso algoritmo lento e ineficiente. O acesso ao arquivo no Algoritmo deve ser feito atravs de leitura e escrita de re gistro. Para manusear o arquivo faz-se necessrio que ele seja declarado e aberto e ao final do cdigo ou quando houver necessidade o arquivo deve ser fechado(isso muito importante) 31

Projeto E-JOVEM Os arquivos esto organizados basicamente de duas formas: Seqencial: os registros so obtidos ou inseridos no arquivo em ordem seqencial. Direta: o acesso do registro feito em ordem aleatria o que o proporciona uma melhor facilidade no acesso aos dados, no sendo necessrio pesquisar-se pelo registro, pois o mesmo pode ser obtido diretamente. Declarao: Acompanhe a notao abaixo para entender melhor como funciona o processo de declarao de um arquivo em algoritmos: DECLARE <lista de identificador> ARQUIVO <or ganizao> DE <nome do registro> Onde: <Lista de indentificadores > //so os nomes usa dos para referenciar os arquivos; ARQUIVO // uma palavra chave; < Organizao > // t ipo de organizao do arquivo que pode ser direta ou seqencial. DE // uma palavra cha ve; <nome do registro > // nome do registro que ser usado para ter acesso aos arq uivos. 17.1. Abertura de arquivos A seguinte notao deve ser utilizada para a abertura dos arquivos: ABRIR <lista_de_ identificadores_de_arquivo><tipo_de_utilizacao> Onde, ABRIR: // uma palavra chave ; <lista_de_identificadores_de_arquivo> //so os nomes dos arquivos. <tipo_de_util izacao> //especifica se o arquivo deve ser aberto para leitura, escrita ou ambos , simultaneamente Exemplos: ABRIR agenda LEITURA ABRIR agenda ESCRITA ABRIR agen da 32

Projeto E-JOVEM 17.2. Fechamento do arquivo A seguinte notao deve ser utilizada para desfazer a associao entre o modelo e o arqu ivo fsico: FECHAR<lista_de_identificadores_de_arquivo> Onde, FECHAR // uma palavra chave; <lista_de_identificadores_de_arquivo> //so os nomes dos arquivos. Observao: Sempre que precisar alterar o tipo de acesso ao arquivo, antes voc deve fechar o arquivo. Exemplo: FECHAR agenda; Analise o exemplo abaixo: ALGORITMO exemplo_arq DECLARE a,b ARQUIVO SEQUENCIAL D E t DECLARE t REGISTRO (nome LITERAL, salario NUMERICO) ABRIR a LEITURA ABRIR b ESCRITA INICIO //Leitura do arquivo Repita LER (a.t); //Teste para detectar fim do algoritmo a Se (a.FDA) ento IMTERROMPA; Fim se ESCREVER (b.t); Fim repita Fech ar a; Fechar b; Fim algoritmo exemplo_arq Observao sobre o exemplo: 33

Projeto E-JOVEM o No h necessidade de se declarar a varivel FDA, j que ela um atributo que est associ ado ao arquivo. O sistema operacional que fica encarregado de atualiz-lo a cada a cesso do arquivo. 18. SubRotina Definio: Consiste numa poro de cdigo que resolve um problema muito espe cfico, parte de um problema maior (a aplicao final). A utilizao das subrotinas nos al goritmos se deu pelas seguintes necessidades: o o o o o Reduo de cdigo duplicado num programa; Possibilidade de reutilizar o mesmo cdigo sem grandes alteraes em outros programas; A decomposio de problemas grandes em pequenas partes; Melhorar a interpretao visual de um programa; Esconder ou regular uma par te de um programa, mantendo o restante cdigo alheio s questes internas resolvidas d entro dessa funo; Dicas: o o As subrotinas (mdulos) devem ter um tamanho limitado, pois podem se tornar difceis de serem compreendidas. Todo mdulo constitudo por uma seqncia de comandos que opera m sobre um conjunto de objetos, que podem ser globais ou locais. Declarao: SUBROTINA nome (lista_de_parametros_formal) Declarao de objetos locais a s ubrotina Comandos da Sub-rotina Fim subrotina Onde, lista_de_parametros_formal : a lista de objetos que sero substitudos por outros objetos. Os parmetros atuais de vem concordar com os parmetros formais. 34

Projeto E-JOVEM

Parmetros de subrotina Classificao dos parmetros de uma subrotina: o De entrada: So a queles que tm seus valores estabelecidos fora da subrotina e no podem ser alterado dentro da subrotina; o De sada: so aqueles que tm seus valores alterados dentro da subrotina; o De entrada e Sada: so aqueles que tm seus valores estabelecidos fora da subrotina e podem ser alterados dentro da subrotina. Passagem de parmetros o P or valor: uma maneira tpica de passar parmetros em funes, quer dizer que a modificao e um parmetro no actualiza o dado da varivel como parmetro, apesar de mudarmos o val or do parmetro dentro da funo, a varivel original no se v afetada pela mudana. o Por r sultado: as alteraes feitas nos parmetros formais dentro de uma subrotina, refletem -se nos parmetro atuais. Quando a passagem por resultado significa que o parmetro de sada. o Por referncia: Neste caso, a mudana do valor de um parmetro dentro de uma funo afeta o valor da varivel original. 19. Funo: As funes embora muito semelhante co as subrotinas apresentam uma caracterstica especial de retornar ao algoritmo que as chamou um valor associado ao nome da funo. Declarao: A declarao de uma funo id de uma subrotina, com exceo de que necessrio o seu tipo, ou seja, o tipo do valor retornado. Alm de numricas as funes podem ser lgicas e literais. Exemplo: Funcao TIPO nome (lista_de_parmetros_formais) Declarao dos objetos locais funo Comandos da funo Fim funcao Chamadas de funo: 35

Projeto E-JOVEM Exemplo: nome(lista_de_parametros_formais). Ao terminar a execuo dos comandos da f uno, o fluxo de controle retorna ao comando seguinte quele que provocou a chamada. Importante: Subrotinas e Funes so mdulos hierarquicamente subordinados a um algoritm o, comumente chamado de mdulo principal, da mesma forma subrotinas e funes pode con ter outras subrotinas e funes aninhadas veja imagem a seguir: Exemplo exerccio resolvido - exerccio proposto 36

Projeto E-JOVEM EXERCCIOS RESOLVIDOS Antes de tudo queremos deixar bem claro para voc aluno que as respostas aqui colo cadas no so as definitivas, lembre-se na eterna busca pela melhoria do cdigo. O que estamos colocando aqui so apenas formas de se resolver o problema em questo. 1. E screver um Algoritmo que receba as 4 primeiras notas e ao final escrever se o al uno passou ou foi reprovado. Para o aluno passar ser necessrio ele atingir uma not a igual ou maior que 6. Resposta: ALGORITMO (Declarao das variveis que armazenaram os valores das notas) DECLARE NOTA 1, NOTA2, NOTA3, NOTA4, MEDIA NUMERICO; LEIA NOTA1, NOTA2, NOTA3, NOTA4; (ler as 4 notas ) MEDIA = ( NOTA1 +, NOTA2, NOTA3, NOTA4) / 4 ; ( Soma as notas e divid e por 4 para obter a media) SE (MEDIA >= 6 ) ( se a Media for igual ou maior que 6 excuta o comando dentro da estrutura) ENTAO ESCREVA O ALUNO PASSOU!; FIM SE; SE (MEDIA < 6 ) ( se a Media for menor que 6 excuta o comando dentro da estrutura) ENTAO ESCREVA ALUNO REPROVADO; FIM SE; FIM ALGORITMO 2. Escrever um Algoritmo que receba duas variveis A e B, e em seguida escreva a m aior. Resposta: ALGORITMO DECLARE A, B NUMERICO; LEIA A, B; SE (A > B ) ENTAO ESCREVA O Valor de A maior :, A; FIM SE; SE (B > A ) ENTAO ESCREVA O Valor de B maior , B; FIM SE; FIM ALGORITMO 37

Projeto E-JOVEM 3. Escreva um Algoritmo que receba os valores de A e B, se a soma de A+B for mai or que 20 ento escreva o total de A+B. Porem, se a soma for menor que 40, leia o valor de C e em seguida escreva a soma de A + B + C. Resposta: ALGORITIMO DECLARE A, B, C, SOMA NUMERICO; LEIA A, B; SOMA = A + B; SE ( SOMA >20 ) Se a soma de A+B for maior que 20 ento executa os comandos dentro d o SE ENTAO ESCREVA O total de A + B :, SOMA; escreve a soma de A + B SE ( SOMA < 40 ) Se a soma A + B for menor que 40 executa os comandos dentro do SE ENTAO LEI A C; SOMA = A +B +C; ESCREVA O total de A+ B +C :, SOMA; FIM SE FIM SE FIM ALGORITI MO 4. Escreva um Algoritmo para o problema abaixo: Em uma escola um aluno precisa o bter a media 6 nas 2 primeiras notas para passar de ano.Caso a media das notas s eja inferior a 6 ele ter que fazer a recuperao e obter os pontos restantes para pas sar. A Regra a seguinte: MEDIA = ( NOTA1 + NOTA2 ) / 2; MEDIA >= 6 PASSOU MEDIA < 6 = FAZ RECUPERACAO MEDIA = NOTA1 + NOTA2 + RECUPERACAO MEDIA >= 6 PASSOU MEDIA < 6 REPROVADO Resposta: ALGORITMO DECLARE NOTA1, NOTA2, MEDIA, RECUPERACAO NUMERICO ; LEIA NOTA1, NOTA2; MEDIA = (NOTA1 + NOTA2) / 2; SE ( MEDIA < 6 ) ENTAO LEIA RE CUPERACAO; MEDIA = (NOTA1 + NOTA2 + RECUPERACAO) / 3; FIM SE SE ( MEDIA >= 6 ) E NTAO ESCREVA "APROVADO"; 38

Projeto E-JOVEM FIM SE SE ( MEDIA < 6 ) ENTAO ESCREVA "REPROVADO"; FIM SE FIM ALGORITMO

5. Qual destes no um exemplo de concatenao vlido? A 1 + CLIENTE = UM_CLIENTE b WEB = EducandusWEB c Rua + 14 = Rua 14 d 30 + Km = 30Km e - DES+CONTO = Resposta: A 6. A tabela dada a seguir contm vrios itens que esto estocados em vrios armazns de um supermercado. fornecido, tambm, o custo de cada um dos produtos armazenados. ESTOQUE PRODUTO1 1200 1400 2000 PRODUTO2 3700 4210 2240 PRODUTO3 3737 4224 2444 ARMAZM1 ARMAZM2 ARMAZM3 CUSTO CUSTO(R$) 260.00 420.00 330.00 Fazer um algoritmo que: a) b) c) d) Leia o estoque inicial; Determine e imprima quantos itens esto armazenados em cada armazm; Qual o armazm que possui a maior qua ntidade de produto 2 armazenado O custo total de: 1. 2. 3. Resposta: (Algoritmo de Resoluo questes a e b) Cada produto em cada armazm; Estoque em cada armazm; Cada to em todos os armazns; 39

Projeto E-JOVEM ALGORITMO EXEMPLO1 DECLARE a[1:3], p[1:3], i, j, maior, anterior, custo[1:3], es toque[1:3,1:3], custoArmazemProduto[1:3,1:3]: NUMERICO LEIA a[1],..., p[1],..., i, j, maior, anterior, custo[1],..., estoque[1,1],..., custoArmazemProduto[1,1], ... INICIO maior, anterior = 0 i, j = 1 // variveis contadoras custo[1] = 260.00 // varivel unidimensional custo do Produto 1 custo[2] = 420.00 // varivel unidimen sional custo do Produto 2 custo[3] = 330.00 // varivel unidimensional custo do Pr oduto 3 estoque[1,1] = 1200 // varivel multidimensional estoque do Produto 1 no A rmazm 1 estoque[1,2] = 3700 // varivel multidimensional estoque do Produto 2 no Ar mazm 1 estoque[1,3] = 3737 // varivel multidimensional estoque do Produto 3 no Arm azm 1 estoque[2,1] = 1400 // varivel multidimensional estoque do Produto 1 no Arma zm 2 estoque[2,2] = 4210 // varivel multidimensional estoque do Produto 2 no Armazm 2 estoque[2,3] = 4224 // varivel multidimensional estoque do Produto 3 no Armazm 2 estoque[3,1] = 2000 // varivel multidimensional estoque do Produto 1 no Armazm 3 estoque[3,2] = 2240 // varivel multidimensional estoque do Produto 2 no Armazm 3 estoque[3,3] = 2444 // varivel multidimensional estoque do Produto 3 no Armazm 3 E NQUANTO i <= 3 FACA ENQUANTO j <= 3 FACA LER (estoque[i,j]); // resolve questo a Le r o estoque inicial. SE( RESTO(i,3) == 1 ) ENTAO a[i] = a[i] + estoque[i,j]; // Itens no armazm 1 FIM-SE SE( RESTO(i,3) == 2 ) ENTAO a[i] = a[i] + estoque[i,j]; // Itens no armazm 2 FIM-SE SE( RESTO(i,3) == 0 ) ENTAO a[i] = a[i] + estoque[i,j ]; // Itens no armazm 3 FIM-SE j = j + 1; FIM-ENQUANTO i = i + 1; FIM-ENQUANTO // o comando escreva abaixo resolve a questo b Itens armazenados em cada armazm ESCREV ER(Estoque no Armazem2 +a[2]); ESCREVER(Estoque no Armazem3 +a[3]);

(Resoluo questes c e d) ...//continuao exemplo 1 i = 1 // reinicializando varivel c a ENQUANTO i <= 3 ESCREVER(Estoque no Armazm + i + = +a[i]); FACA FIM-ENQUANTO i = 1 // reinicializando varivel contadora ENQUANTO i <= 3 FACA 40

Projeto E-JOVEM SE( estoque[i,2] >= anterior ) ENTAO maior = estoque[i,2]; // Resolve questo c Arma zm que possui maior quantidade do Produto 2. FIM-SE anterior = estoque[i,2]; FIMENQUANTO ESCREVER (Armazm que possui maior quantidade do Produto 2 + maior); i = 1 // reinicializando varivel contadora ENQUANTO i <= 3 FACA ENQUANTO j <= 3 FACA S E( RESTO(i,3) == 1 ) ENTAO SE( RESTO( j,3 ) == 1 ) ENTAO custoArmazemProduto [i, j] = custo[i] * estoque[i,j]; // Produto1 armazm1 FIM-SE SE( RESTO( j,3 ) == 2 ) ENTAO custoArmazemProduto [i,j] = custo[i] * estoque[i,j]; // Produto2 armazm1 FI M-SE SE( RESTO( j,3 ) == 0 ) ENTAO custoArmazemProduto [i,j] = custo[i] * estoqu e[i,j]; // Produto3 armazm1 FIM-SE FIM-SE ...//continuao exemplo 1 questo d.1 SE( REST O(i,3) == 2 ) ENTAO SE( RESTO( j,3 ) == 1 ) ENTAO custoArmazemProduto [i,j] = cu sto[i]* estoque[i,j]; // Produto1armazm2 FIM-SE SE( RESTO( j,3 ) == 2 ) ENTAO cus toArmazemProduto [i,j] = custo[i]*estoque[i,j]; // Produto2 armazm2 FIM-SE SE( RE STO( j,3 ) == 0 ) ENTAO custoArmazemProduto [i,j] = custo[i]*estoque[i,j]; // Pr oduto3 armazm2 FIM-SE FIM-SE SE( RESTO(i,3) == 0 ) ENTAO SE( RESTO( j,3 ) == 1 ) ENTAO custoArmazemProduto [i,j] = custo[i]*estoque[i,j]; // Produto1 armazm3 FIMSE SE( RESTO( j,3 ) == 2 ) ENTAO custoArmazemProduto [i,j] = custo[i]*estoque[i, j]; // Produto2 armazm3 FIM-SE SE( RESTO( j,3 ) == 0 ) ENTAO custoArmazemProduto [i,j] = custo[i]*estoque[i,j]; // Produto3 41

Projeto E-JOVEM armazm3 FIM-SE FIM-SE j = j + 1; FIM-ENQUANTO i = i + 1; FIM-ENQUANTO i, j = 1 // reinicializando variveis contadoras ENQUANTO i <= 3 FACA ENQUANTO j <= 3 // o alg oritmo abaixo resolve a questo d.1 FACA ESCREVER(Custo do produto + j + no armazm + i + = + custoArmazemProduto[i,j]); j = j + 1; FIM-ENQUANTO i = i + 1; FIM-ENQUANTO . ..//continuao exemplo 1 questo d.2 i = 1 //reinicializando variveis contadoras ENQUANT O i <= 3 // o algoritmo abaixo resolve a questo d.2 FACA ESCREVER(Custo do estoque no armazm + i + = + custo[i]*a[i]); i = i + 1; FIM-ENQUANTO i = 1 //reinicializando variveis contadoras ENQUANTO i <= 3 // o algoritmo abaixo resolve a questo d.3 FA CA ESCREVER(Custo do estoque no armazm + i + = + custo[i]*p[i]); i = i + 1; FIM-ENQUA NTO FIM ALGORITMO EXEMPLO1 7. Declare um arquivo com organizao seqencial para registros com o seguinte formato : numero_da_conta Resposta: DECLARE agencia ARQUIVO sequencial DE conta DECLARE co nta REGISTRO (numero_da_conta NUMERICO, nome_cliente LITERAL, saldo NUMERICO, da ta_ultima_operacao NUMERICO) nome_cliente saldo data_ultima_operacao 42

Projeto E-JOVEM 8. Declare um arquivo com organizao seqencial usando o registro dado abaixo: telefone Resposta: DECLARE conta_telefonica ARQUIVO sequencial DE ligacao DECLAR E ligacao REGISTRO (telefone NUMERICO, NUMERICO) cidade custo_da_ligacao cidade LITERAL, custo_da_ligacao 9. Em certo municpio, vrios proprietrios de imveis esto em atraso com o pagamento do imposto predial. Vamos desenvolver um algoritmo que calcule e escreva o valor da multa a ser para por esses proprietrios considerando que: Os dados de cada imvel: IDENTIFICACAO (de tipo LITERAL), VALOR DO IMPOSTO e NUMERO DE MESES EM ATRASO e sto disposio numa unidade de entrada; As multas devem ser calculadas a partir do VA LOR DO IMPOSTO e de acordo com a seguinte tabela (tambm disposio numa unidade de en trada); VALOR DO IMPOSTO At R$ 5.000,00 De R$ 5.001,00 a R$ 18.000,00 De R$ 18.00 1,00 a R$ 50.000,00 De R$ 50.001,00 a R$ 120.000,00 Acima de R$ 120.000,00 % POR M EM ATRASO 1 2 4 7 10 O ltimo registro lido, que no deve ser considerado, contm a identificao do imvel igual a vazio; Na sada devero ser impressos: a identificao do imvel, valor do imposto, mes es em atraso e a multa a ser paga. As estruturas de dados a serem adotadas para a soluo do problema so: TABELA LIMITES PERCENTUAL DE AT 0 5.000 1 5.001 18.000 2 18. 001 50.000 4 50.0001 120.000 7 43

Projeto E-JOVEM 120.001 10 Essa tabela pode ser representada por uma Varivel Composta Homognea de 5 linhas po r 3 colunas. (3 colunas para DE, AT e PERCENTUAL). Para os dados de cada imvel, se r adotado o seguinte registro (varivel composta heterognea) IMOVEL IDENTIFICACAO (L ITERAL) Resposta: ALGORITMO EXEMPLO1 DECLARE tabela[1:5,1:3] NUMERICO DECLARE imvel REGIS TRO (identificacao LITERAL, imposto NUMERICO, meses_atraso NUMERICO) DECLARE i, multa NUMERICO LEIA tabela INICIO ENQUANTO (imovel.identificao != VAZIO) FACA LEIA i movel SE (imovel.identificacao != VAZIO) ENTAO i = 6; ENQUANTO ((imvel.imposto <= t abela[i,1]) OU (i = 1)) FACA i = i 1; FIM-ENQUANTO SE imvel.imposto >= tabela[i,1 ] ENTAO multa = tabela[i,3] * (imvel.imposto/100) * imvel.meses_atraso; FIM-SE FIM -SE ESCREVER imovel.multa; FIM-ENQUANTO FIM ALGORITMO EXEMPLO1 IMPOSTO (NUMERICO) MESES_ATRASO (NUMERICO) 10. Escreva o comando de abertura do arquivo declarado para o registro no seguin te formato abaixo, visto na aula anterior Arquivo I, de modo a permitir a atualizao do registro, isto , a leitura, modificao dos campos e escrita do registro no mesmo arquivo: numero_da_conta nome_cliente saldo data_ultima_operacao Resposta: ABRIR agencia 44

Projeto E-JOVEM 11. Suponha-se um arquivo de registros de alunos de um colgio. Cada registro poss ui um campo para o nmero de matrcula e uma seqncia de outros campos com outras infor maes. Observe a figura abaixo que representa a organizao deste arquivo seqencialmente . Um algoritmo para a obteno de um registro neste arquivo, por exemplo, procurando um registro com um determinado nmero de matrcula, dever preocupar-se em pesquisar cada registro at encontrar, ou no, o registro desejado. MATRCULA 820001 820007 820003 820005 830008 830001 Resposta: ALGORITMO /* Pesquis a pelo registro cuja matrcula seja 830008, num arquivo seqencial*/ /* Definio do arq uivo de alunos */ DECLARE alunos ARQUIVO sequencial DE dados DECLARE dados REGIS TRO (matricula NUMERICO, outrosdados LITERAL) /* Definio do arquivo para impresso * / DECLARE listagem ARQUIVO sequencial DE linha DECLARE linha REGISTRO (component e LITERAL) /* Abertura dos Arquivos */ ABRIR alunos LEITURA ABRIR listagem ESCRI TA /* Pesquisa do Registro */ REPITA LER(alunos.dados); SE(alunos.FDA ou dados.m atricula == 830008) ENTAO INTERROMPA; FIM SE FIM REPITA SE(alunos.FDA) ENTAO lin ha.componente = REGISTRO NO ENCONTRADO; ESCREVER(listagem.linha); SENO ESCREVER(list agem.dados); FIM SE /* Fechamento dos arquivos */ FECHAR alunos, listagem FIM AL GORITMO OUTRAS INFORMAES ZZZABDEF KKKZDXZ ACKYDYA ZKD AAAA ZZZ DEEX KYZ ZZZZ 00000 140300 11111 99990 1111 0010 12. Crie a partir de um arquivo seqencial, um arquivo de acesso direto, com regis tros contendo a placa, tipo e nome do proprietrio de um veculo. Use como chave a p laca do veculo. Resposta: ALGORITMO /* Criao de arquivo de acesso direto a partir de arquivo seqenc ial*/ /* Definio das estruturas de dados */ 45

Projeto E-JOVEM DECLARE fonte ARQUIVO sequencial DE reg /* Arquivo seqencial contendo os registro s dos veculos */ DECLARE veiculos ARQUIVO direto DE reg /* Arquivo de acesso dire to com os registros dos veculos */ DECLARE reg REGISTRO (placa, tipo, proprietari o LITERAL) /* Abertura dos Arquivos */ ABRIR fonte LEITURA ABRIR veiculos ESCRIT A /* Criao do arquivo direto */ REPITA LER(fonte.reg); SE(fonte.FDA) ENTAO INTERRO MPA; FIM SE ESCREVER ITEM [placa] veiculos.reg FIM REPITA /* Fechamento dos arqu ivos */ FECHAR fonte FECHAR veiculos FIM ALGORITMO

13. Fazer uma funo que d o resultado das 4 operaes matemticas bsicas: soma, subtrao, iplicao e diviso. Fazer tambm um sub-rotina para comparar qual dos dois parmetros mai or, ou se so iguais, e escreva a informao correta. Obs.: Cada operao s realiza o clcul de dois valores por vez. Resposta: ALGORITMO FUNCAO NUMERICO resultado (a, b, operacao) DECLARE a, b, ope racao FACA CASO CASO (operacao == 1) resultado = a + b; CASO (operacao == 2) res ultado = a b; CASO (operacao == 3) resultado = a * b; CASO (operacao == 4) resul tado = a / b; FIM-CASO FIM-FUNCAO SUBROTINA comparar (a, b) DECLARE a, b SE (a < b) ENTAO ESCREVER (O primeiro valor maior que o segundo!) FIM-SE SE (a > b) ENTAO ESCREVER (O primeiro valor menor que o segundo!) FIM-SE SE (a == b) ENTAO 46

Projeto E-JOVEM

ESCREVER (O primeiro valor igual que o segundo) FIM-SE FIM-SUBROTINA DECLARE a, b, operacao NUMERICO ESCREVER (Digite o primeiro valor: ); ESCREVER (Digite o segundo valor: ); ESCREVER (Digite a operao: 1 para soma ); ESCREVER (Digite a operao: 2 par ubtrao ); ESCREVER (Digite a operao: 3 para multiplicao ); ESCREVER (Digite a opera diviso ); LER (valor1, valor2, operacao) ESCREVER resultado(valor1, valor2, opera cao) comparar(valor1, valor2) FIM-ALGORITMO 14. Descreva o que o que o seguinte algoritmo faz: ALGORITMO DECLARE valor1, valor2, peso1, peso2, media_ponderada NUMERICO; LEIA v alor1, valor2, peso1, peso2; media_ponderada = ((valor1 * peso1) + (valor2 * pes o2)) / (peso1 + peso2); ESCREVA media_ponderada; FIM ALGORITMO Resposta: Primeiro declaramos as variveis que iram armazenar as notas, os pesos, e tambm a md ia ponderada. Em seguida, lemos os valores das notas, e dos pesos, depois multip licamos cada nota pelo peso correspondente, somamos esses valores multiplicados e dividimos pela soma dos pesos para obtermos o mdia ponderada de dois valores. P or fim, escrevemos a mdia ponderada como resultado do algoritmo. 47

Projeto E-JOVEM 15. Explique o que o cdigo abaixo faz: ALGORITIMO DECLARE A, B, C NUMERICO; LEIA A, B, C; SE ( A > B )ENTAO SE ( A > C ) ENTAO ESCREVA O maior valor : , A; SENAO ESCREVA O maior valor : , C; FIM SE SENAO S E ( B > C ) ENTAO ESCREVA O maior valor : , B; SENAO ESCREVA O maior valor : , C; FIM SE FIM SE FIM ALGORITIMO Primeiro declaramos as variveis que iram armazenar os valores de A, B e C. Em seg uida, lemos os valores e os comparamos para sabermos qual dele o maior valor. Po r fim, escrevemos qual dos trs numricos declarados tem maior valor. 16. Qual(is) d essa(s) estrutura(s) so consideradas Estruturas de Repetio Determinadas? I PARA i = 0 ATE 10 FACA i = i + 1; II x = 0; PARA i = 1 ATE 100 FACA x = x + i; I II PARA i = 0 FACA i = i * 2; IV PARA i == 0 ATE i == 10 FACA i = i + 1; V x = 10; PARA i = 10 ATE 1000 48

Projeto E-JOVEM FACA x = x + i; a) b) c) d) e) Resposta: C I, II e III. II, III e V. I, II e V. I e II. I, II, I V e V. 17. Qual das seguintes assertivas com trechos de cdigo est correta a respeito da e strutura de Conjunto de Registros abaixo? LISTA CLIENTE 1 2 3 4 5 AGENCIA NOME CONTA SALDO CPF I DECLARE lista[1:5] cliente DECLARE cliente REGISTRO (nome LITERAL, agencia, cont a, cpf, saldo NUMERICO) DECLARE lista REGISTRO (nome, rua LITERAL, numero, cep, saldo NUMERICO) DECLARE lista[1:5] cliente DECLARE cliente REGISTRO (nome, rua L ITERAL, numero, cep, saldo NUMERICO) DECLARE lista REGISTRO (nome LITERAL, agenc ia, conta, cpf, saldo NUMERICO) DECLARE contas[1:5] cliente DECLARE cliente REGI STRO (nome, rua LITERAL, numero, cep, saldo NUMERICO) II III IV V a) b) c) d) e) II, III e V. II e III. I, III e V. I e IV. I, II e IV. Resposta: D 49

Projeto E-JOVEM 18. Fazer um algoritmo que efetue um produto matricial. Seja A (m X n) e B (n X m) as matrizes-fatores, sendo m <= 40 e n <= 70. Devero ser impressas as matrizes A, B e a matriz-produto obtida. Resposta: ALGORITMO DECLARE a[40:70], b[70:40], produto[40:40], m, n NUMERICO LER a[1,1],. .., a[40,70],..., b[1,1], b[70,40] INICIO m = 1; n = 1; ENQUANTO (m <= 40) FACA ENQUANTO (n <= 70) FACA produto[m,m] = produto[m,m] + (a[m,n] * b[n,m]); n = n + 1; FIM-ENQUANTO m = m + 1; n = 1; FIM-ENQUANTO m = 1; n = 1; ENQUANTO (m <= 40) FACA ENQUANTO (n <= 70) FACA ESCREVER (a[m,n]); n = n + 1; FIM-ENQUANTO m = m + 1; n = 1; FIM-ENQUANTO m = 1; n = 1; ENQUANTO (m <= 40) FACA ENQUANTO (n <= 70) FACA ESCREVER (b[n,m]); n = n + 1; FIM-ENQUANTO m = m + 1; n = 1; FIM-ENQUANTO m = 1; n = 1; ENQUANTO (m <= 40) FACA ENQUANTO (n <= 70) 50

Projeto E-JOVEM FACA ESCREVER (produto[m,m]); n = n + 1; FIM-ENQUANTO m = m + 1; n = 1; FIM-ENQU ANTO FIM-ALGORITMO 19. Escreva um algoritmo que represente o formulrio digital de cadastramento de c lientes de um sistema web real. Alm disso, imprima as informaes do cliente incluind o os rtulos identificadores do dado em questo. Resposta: ALGORITMO DECLARE clientes REGISTRO (cod_cliente NUMERICO, nome_empresa LITERAL, nome_contato LITERAL, cargo LITERAL, endereco LITERAL, cidade LITERAL, regiao L ITERAL, cep LITERAL, pais LITERAL, telefone LITERAL, fax LITERAL) LER (clientes) ; INICIO ESCREVER (Cdigo do Cliente: ,clientes.cod_cliente); ESCREVER (Nome da Empre sa: ,clientes.nome_empresa); ESCREVER (Nome do Contato: ,clientes.nome_contato); ES CREVER (Cargo: ,clientes.cargo); ESCREVER (Endereo: ,clientes.endereco); ESCREVER (Cid ade: ,clientes.cidade); ESCREVER (Regio: ,clientes.regiao); ESCREVER (CEP: ,clientes.c ep); ESCREVER (Pas: ,clientes.pais); 51

Projeto E-JOVEM ESCREVER (Telefone: ,clientes.telefone); ESCREVER (Fax: ,clientes.fax); FIM-ALGORITM O 20. Dada a tabela a seguir: (Itens de compras) 1 2 3 4 5 6 ... 99 100 ID 001000 001050 002000 002050 003000 003050 ........... 198050 199000 PRODUTO Lmpada Queijo Espuma de barbear Uisque Vinho Feijo .................. Arro z Barbeador PREO (R$) 12 13 10 35 30 4 .................. 2 5 Escrever um algoritmo que, dados 100 CODIGOS DE PRODUTOS (fornecidos em 100 linh as), emite o ID, o PRODUTO e o PREO individual dos produtos. A tabela acima tambm deve ser lida. Resposta: ALGORITMO DECLARE tabela[1:100] REGISTRO (nome LITERAL, id, preco NUMERICO) DECL ARE idDesejado, i, k NUMRICO LER tabela[1]...tabela[100] INICIO k=1 ENQUANTO k <= 100 // 100 id's de produtos fornecidos em linha. FACA LER idDesejado i = 1; ENQUA NTO ((tabela[i].id != idDesejado) OU (i != 101)) FACA i = i + 1; FIM-ENQUANTO SE (tabela[k].id == idDesejado) ENTAO ESCREVER (idDesjado, tabela[k].produto, tabe la[k].preco); SENAO ESCREVER (ID INVLIDO!); FIM-SE k = k + 1; FIM-ENQUANTO FIM ALGO RITMO 21. Uma pessoa aplicou seu capital a juros e deseja saber, trimestralmente, a po sio de seu investimento c inicial. Chamando de i a taxa de juros do trimestre, escreve r uma tabela que d para cada trimestre o rendimento auferido e o saldo acumulado durante um perodo de x anos, supondo-se que nenhuma retirada tenha sido feita. a. O bservaes: b. Os valores de c, i e x esto disponveis numa unidade de entrada. c. O clc ulo deve ser feito por uma funo. d. A frmula para capitalizao composta dada por: 52

Projeto E-JOVEM Mn = c(1 + i)n Onde: Mn c i n montante aps terem decorridos n trimestres; capital inicial investido; taxa de juros; nmero de perodos decorridos (trimestres) Resposta: ALGORITMO MONTANTE FUNCAO NUMERICO montante(c, i, n) DECLARE c, i, n NUMERICO; S E (n > 0) ENTAO montante = c * (EXP( 1 + i ), n); SENAO montante = c; FIM-SE FIM -FUNCAO DECLARE c, i, n NUMERICO LER (c, i, n); // lida da unidade de entrada. F ACA ESCREVER (montante (c, i, n)); FIM-ALGORITMO MONTANTE Perceba que usamos uma funo pr-definida chamada EXP para rep resentar a operao exponencial necessria. 22. Dada a ficha de avaliao abaixo, faa um al goritmo que verifique se algum item obrigatrio no foi preenchido, caso algum campo obrigatrio da ficha no tenha sido preenchido, deve-se indicar atravs de uma mensagem que aquele campo era obrigatrio e no foi preenchido . Ao final deve-se imprimir todos os campos da ficha com a respectiva indicao do q ue o campo representa (Ex. Nome: Alexandre Monteiro). Obs.: Os campos obrigatrios possuem um asterisco (*) ao lado. AVALIACAO *ALUNO ENDERECO CONTATO MEDIDAS ENDERECO *RUA *NUMERO CONTATO TELEFONE MEDIDAS *ALTURA COMPLEMENTO *CEP *BAIRRO *UF CONTATO *CELULAR EMAIL *PESO BRACO PERNA 53

Projeto E-JOVEM TELEFONE *PESSOAL COMERCIAL EMAIL *PESSOAL BRACO ESQUERDO PERNA ESQUERDA Respost a: COMERCIAL DIREITO DIREITA ALGORITMO DECLARE Avaliacao REGISTRO (aluno LITERAL, endereco Endereco, medidas Medidas) DECLARE Endereco REGISTRO (rua LITERAL, numero NUMERICO, complemento LI TERAL, cep NUMERICO, bairro LITERAL, uf LITERAL, contato Contato) DECLARE Contat o REGISTRO (telefone Telefone, celular LITERAL, email Email) DECLARE Telefone RE GISTRO (pessoal LITERAL, comercial LITERAL) DECLARE Email REGISTRO (pessoal LITE RAL, comercial LITERAL) DECLARE Medidas REGISTRO (altura NUMERICO, peso NUMERICO , braco Braco, perna Perna) DECLARE Braco REGISTRO (esquerda NUMERICO, direita N UMERICO) DECLARE Perna REGISTRO (esquerda NUMERICO, direita NUMERICO) LER Avaliao, Endereco, Contato, Telefone, Email, Medidas, Braco, Perna; INICIO SE (Avaliacao .aluno != ) ENTAO ESCREVER (Aluno: , Avaliacao.aluno); SENAO ESCREVER (O preenchimen to do campo Aluno obrigatrio.); FIM-SE SE (Avaliacao.endereco.rua != ) ENTAO ESCREV ER (Rua: , Avaliacao.endereco.rua); SENAO ESCREVER (O preenchimento do campo Rua ob rigatrio.); FIM-SE 54

Projeto E-JOVEM SE (Avaliacao.endereco.numero != ) ENTAO ESCREVER (Endereo: , Avaliacao.endereco.num ero); SENAO ESCREVER (O preenchimento do campo Endereo obrigatrio.); FIM-SE SE (Aval iacao.endereco.cep != ) ENTAO ESCREVER (CEP: , Avaliacao.endereco.cep); SENAO ESCRE VER (O preenchimento do campo CEP obrigatrio.); FIM-SE SE (Avaliacao.endereco.bairr o != ) ENTAO ESCREVER (Bairro: , Avaliacao.endereco.bairro); SENAO ESCREVER (O preen chimento do campo Bairro obrigatrio.); FIM-SE SE (Avaliacao.endereco.uf != ) ENTAO ESCREVER (UF: , Avaliacao.endereco.uf); SENAO ESCREVER (O preenchimento do campo UF obrigatrio.); FIM-SE SE (Avaliacao.endereco.contato.celular != ) ENTAO ESCREVER (Ce lular: , Avaliacao.endereco.contato.celular); SENAO ESCREVER (O preenchimento do c ampo Celular obrigatrio.); FIM-SE SE (Avaliacao.endereco.contato.telefone.pessoal != ) ENTAO ESCREVER (Telefone Pessoal: , Avaliacao.endereco.contato.telefone.pessoa l); SENAO ESCREVER (O preenchimento do campo Telefone Pessoal obrigatrio.); FIM-SE SE (Avaliacao.endereco.contato.email.pessoal != ) ENTAO ESCREVER (E-mail Pessoal: , Avaliacao.endereco.contato.email.pessoal); SENAO ESCREVER (O preenchimento do ca mpo E-mail Pessoal obrigatrio.); FIM-SE SE (Avaliacao.endereco.medidas.altura != ) ENTAO ESCREVER (Altura: , Avaliacao.endereco.medidas.altura); SENAO ESCREVER (O pre enchimento do campo Altura obrigatrio.); FIM-SE SE (Avaliacao.endereco.medidas.pes o != ) ENTAO ESCREVER (Peso: , Avaliacao.endereco.medidas.peso); SENAO ESCREVER (O p reenchimento do campo Peso obrigatrio.); FIM-SE FIM-ALGORITMO 55

Projeto E-JOVEM 23. Vamos criar um outro algoritmo para uma agenda virtual, que durante sua exec uo, armazenar: Nome, Telefone, endereo e e-mail tambm de 100 pessoas. Desta vez voc de ve fazer uso de Variveis Compostas Multidimensionais, as famosas matrizes. Respos ta: ALGORITMO DECLARE agenda [1:100; 1:4] LITERAL DECLARE indice1, indice2 NUMERICO INICIO //Incio do algoritmo //Inicializando indice indice1 = 1; //Inicializando v etores PARA i = 1 ATE 100 FACA PARA j = 1 ATE 4 FACA agenda [i,j] = ; FIM-PARA //Obtendo dados do usurio FIM-PARA//Obtendo dados do usurio j = 1; PARA i = 1 ATE 100 FACA ESCREVER(Digite o nome:) LER(agenda [i,j]) ESCREVER ( Digite o Endereco) LER(agenda [i,j+1]) ESCREVER (Digite o Telefone) LER(agend a [i,j+2]) ESCREVER (Digite o e-mail) LER(agenda [i,j+3]) FIM-PARA //Listando todos os registros em sequncia PARA i = 1 ATE 100 FACA PARA j = 1 ATE 4 FACA ESCR EVER (agenda [i,j]) ESCREVER (agenda [i,j]) ESCREVER (agenda [i,j]) ESCREVER (ag enda [i,j]) FIM-PARA FIM-PARA FIM-ALGORITMO 56

Projeto E-JOVEM

24. Uma empresa decide dar um aumento de 30% aos funcionrios com salrios inferiore s a R$ 500,00. Faa um algoritmo que receba o salrio do funcionrio e mostre o valor do salrio reajustado ou uma mensagem caso o funcionrio no tenha direito ao aumento. Resposta: ALGORITMO 2 DECLARE salario, salario2 NUMERICO ESCREVA Insira o valor do salrio LEI A salario SE salario < 500 ENTAO salario2<- salario+(salario*30/100) ESCREVA Voc v ai receber , salario2. reais. SENAO ESCREVA Voc no tem direito a reajuste de salrio va receber , salario, . reais. FIM_SENAO FIM_ALGORITMO 25. Faa um algoritmo que receba a altura e o sexo de uma pessoa, calcule e mostre o seu peso ideal, utilizando as seguintes frmulas: Resposta - para homens: (72.7 * h) - 58; - para mulheres: (62.1 * h) - 44.7 ALGORITMO 6 DECLARE peso, calculo NUMERICO sexo LITERAL ESCREVA Insira seu peso LEIA peso Escreva "Voc homem ou mulh er?" LEIA sexo SE sexo="mulher" ENTAO calculo<- (72.7*peso)-58 SENAO calculo<- ( 62.1*peso)-44.7 57

Projeto E-JOVEM FIM_SENAO ESCREVA "Seu peso ideial de ",calculo FIM_ALGORITMO 26. Fazer um algor itmo que dadas as dimenses de um retngulo, calcule a sua rea e escreva na tela. Resposta: Algoritmo Declare //Inicio do algoritmo //Obtendo os dados do usurio Es creva(Digite o valor da base do retngulo: ) Leia(Base) Escreva(Digite o valor da altura do retngulo: ) Leia(Altura) //Calculando a rea Area <- Base * altura Es creva(A rea : ,Area) FimAlgoritmo 27. Fazer um algoritmo para calcular a potncia N de um numero X. Ambos sero digita dos pelo usurio. E escreva na tela. Resposta: Algoritmo Declare //Inicio do algoritmo //Obtendo os dados do usurio Es creva(Digite a base:) Leia(Base) Escreva(Digite o expoente:) Leia(Expoente) //Inicializando varivel resultado Resultado<- Base //Calculando Se Expoente = 0 e nto Resultado<-1 seno Se base = 0 ento Resultado <- 0 seno PARA i<- 1 at (Expoente -1 ) 58

Projeto E-JOVEM FAA Resultado<- Resultado * Expoente FimPARA FimSe FimSe Escreva(O resultado : , Resultado) FimAlgoritmo 28. Dada a expresso: 2*10*2*20*2*30*2*40 1+2+3+4+5+6+7+8 Fazer um algoritmo para mostrar seu resultado. Resposta Algoritmo Declare //Inicio do algoritmo j<-10 Somar <- 0 PARA i <- 1 at 8 Faa Calcular<- Calcular + (2*j) Somar<- Somar + i j<- j + 10 FimPARA Resultado<- Calcular / Somar Escreva(O resultado : , Resultado) FimAlg oritmo 29. Fazer um algoritmo que dados dois nmeros, calcule a razo existente entre eles e monte uma PA de 10 termos e escreva na tela. Resposta O calculo da razo o segundo termo menos o primeiro. Algoritmo Declare // Inicio do algoritmo //Obtendo os dados do usurio Escreva(Digite o primeiro nmero ) Leia(PTermo) 59

Projeto E-JOVEM Escreva(Digite o segundo nmero) Leia(STermo) //Calculando a razo Razao<- STermo - PTermo Escreva(Os dez primeiros termos desta PA so:) Escreva(PTermo) Escreva( STermo) TAux<-STermo Para i<-3 at 8 Faa ProxTermo<- TAux + Razao Escreva(ProxTermo ) TAux<- ProxTermo FimPara FimAlgoritmo 30. Tendo-se a seguinte expresso matemtica: Soma = X+Y Mult= X*Y SubTotal = Mult / Soma Expressao = [ (X*15)+(Y*25)+(X*35)+(Y*45)+(X*55) ] / 15 Total= SubTotal + Expressao Fazer um algoritmo que: 1. Leia os valores X e Y 2. Calcule a soma e a multiplicacao destes valores e armazene em SubTotal 3. Calcule expressao e arma zene a ltima operao de soma na varivel Total Ao final do programa, listar na tela os valores, da seguinte maneira: Resposta: Valores digitados pelo usurio "VALOR DE X"; "VALOR DE Y" Subtotal : "VA LOR DO SUBTOTAL"; Expresso: "VALOR DA EXPRESSO"; Total:"Valor total"; Algoritmo De clare //Inicio do algoritmo //Obtendo os nmeros do usurio Escreva(Digite o primei ro nmero) leia(X) Escreva(Digite o Segundo nmero) Leia(Y) Soma <- X + Y 60

Projeto E-JOVEM Mult <- X * Y SubTotal <- Mult / Soma Expressao <- 0 i<-15 j<- 1 Enquanto i <= 5 5 faa Par<- J mod 2 Se (par = 0) Ento Expressao <- Expressao + (X*i) Seno Expressao <- Expressao + (Y*i) FimSe i<- i + 10 Fim Enquanto Expressao<-Expressao/15 Tota l <- SubTotal + Expressao Escreva(Exercicio1) Escreva() //isto escreve uma l inha vazia Escreva() //isto escreve uma linha vazia Escreva(Os valores digita dos pelo usurio so:X=,X, Y= ,Y) Escreva(SubTotal= ,SubTotal) Escreva(Expresso = ,Expressao) Escreva(O valor total dos calculos :, Total) FimAlgoritmo 31. Um trabalhador recebeu seu salrio e o depositou em sua conta corrente bancria. Esse trabalhador emitiu dois cheques e agora deseja saber seu saldo atual. Sabe -se que cada operao bancria de retirada paga CPMF de 0,38% e o saldo inicial da con ta est zerado. Resposta: Algoritmo Saldo Declare real sal, chq1, chq2, cpmf1, cpmf2, saldo Incio Ler(sal); Ler(chq1); Ler(chq2); cpmf1chq1 x 0.38 / 100; cpmf2chq2 x 0.38 / 100; 61

Projeto E-JOVEM saldo sal (chq1 + chq2 + cpmf1 + cpmf2); Escrever(O saldo total:+saldo); Fim Algor itmo Saldo 32. Dados dois nmeros positivos m e n encontre seu maior divisor comum, isto o ma ior inteiro positivo que divide tanto m como n. Assuma que m sempre maior que n, e n diferente de zero. Resposta: Algoritmo incio ler m, n; r = m % n; // resto da diviso de m por n enqua nto r != 0 faca m = n; n = r; r = m % n; fim enquanto imprimir n; fim Algoritmo 33. Fazer um Algoritmo que efetue o Produto de V1 com V2, e que imprima logo dep ois este resultado. Resposta: Algoritmo ( Produto) Declare V1, V2, Produto : inteiro; Incio Ler V1, V 2 Produto <- V1*V2 ; escreva Produto Fim Algoritmo 62

Projeto E-JOVEM 34. Fazer um Algoritmo que utiliza a estrutura Repita, que faa uma soma acumulada de 5 nmeros, e logo depois imprima esta Soma. Resposta: Algoritmo "Soma Acumulada" declare Soma, V, K : inteiro Incio S <-0 K < -0 Repita Ler V Soma <- Soma+V K <- K+1 at que (K=5 escreva Soma Fim Algoritmo 35. Fazer um Algoritmo, que leia uma matriz quadrada de dimenso 2,e que depois im prima os valores. Resposta: Algoritmo "Leitura_de_Matriz" Declare M : conjunto [ 1..2, 1..2 ] de r eal I,J : inteiro Incio { Leitura da Matriz} Para I de 1 at 2 faa Para J de 1 at 2 f aa Ler M [I,J] 63

Projeto E-JOVEM Fim Para Fim Para { Imprimi a Matriz lida} Para I de 1 at 2 faa Para J de 1 at 2 faa escreva M [I,J] Fim Para Fim Para Fim Algortmo 36. Faa um programa que a partir da leitura das medidas dos lados de um retngulo ( comprimento (C) e largura (L), lidos do teclado, calcule e imprima a rea e o perme tro do retngulo): Resposta: Formula: rea = C . L /// Permetro = 2 . C + 2 . L Resposta: Algoritmo In icio Ler(Comprimento) Ler(Largura) rea=comprimento+largura Escrever(rea) Permetro=2 . comprimento + 2 . largura Escrever(permetro) Fim Fim Algoritmo 64

Projeto E-JOVEM 37. Dados dois nmeros inteiros x e y cada um contento 4 dgitos x (x1x2x3x4) e y(y1 y2y3y4). Faa u m programa para gerar um terceiro numero de 4 dgitos baseado na mul tiplicao de cada digito entre x e y, guardando o ultimo digito da multiplicao como v alor para o terceiro numero. Resposta: Algoritmo inicio ler(numero1) ler(numero2) x1=(numero1/1000) x2=(numer o1/100)!10 x3=(numero1/10)!10 x4=(numero1/1)!10 y1=(numero2/1000) y2=(numero2/10 0)!10 y3=(numero2/10)!10 y4=(numero2/1)!10 n1=(x1*y1)!10 n2=(x2*y2)!10 n3=(x3*y3 )!10 n4=(x4*y4)!10 se(n1<9) inicio n1=n1!10 fim se(z2<9) inicio n2=n2!10 fim se( z3<9) inicio n3=n3!10 fim se(z4<9) inicio n4=n4!10 fim n=(n1*1000)+(n2+100)+(n3* 10)+(n4*1) escrever(n) fim Fim Algoritmo 65

Projeto E-JOVEM 38. Faa um programa que leia um numero e informe se ele negativo, positivo ou nul o. Resposta: Algoritmo inicio ler(numero) se(numero>0) inicio escrever(Esse numero positivo) fim se(numero==0) inicio escrever(Esse numero nulo) fim se(numero<o) i nicio escrever(Esse numero negativo) fim se fim Fim Algoritmo

39. Escreva um algoritmo para calcular o consumo mdio de um automvel (medido em Km /l), dado que so conhecidos a distncia total percorrida e o volume de combustvel co nsumido para percorr-la (medido em litros). Resposta: Algoritmo CONSUMO_MEDIO Var CM, DIST, VOL : real Incio Escreva Algoritmo para calcular o consumo Escreva Distncia total percorrida (Km): Leia DIST Escreva V olume de combustvel gasto (L): Leia VOL CM DIST / VOL Escreva Consumo mdio =, CM, Km l 66

Projeto E-JOVEM Fim algoritmo CONSUMO_MEDIO 40. Transcreva o fluxograma abaixo para cdigo de algoritmo: Resposta: Algoritmo FUNCAO_DE_X Var X, Y : real Incio Escreva Algoritmo para calcular y = 3x +2 Escreva X: Leia X Y3*X+2 Escreva Y = , Y Fim. 67

Projeto E-JOVEM 41. Dado o seguinte algoritmo ALGORITMO DECLARE z NUMERICO; FUNCAO NUMERICO op (x, y) DECLARE x, y NUMERICO; S E (z == 0) ENTAO op = x + y; SENAO op = x y; FIM-SE FIM-FUNCAO DECLARE x, y NUME RICO; DECLARE res NUMERICO; LER (z, y, x); res = op(y, x); ESCREVER (O resultado de op sobre x e y , res); FIM-ALGORITMO Responda: a) O que ser mostrado para o usurio ao final do algoritmo se ele entrar com os seguintes valores em resposta ao comando de entrada: z = 1/ x = 12/ y = 3; Resposta: [O resultado de op sobre x e y 9]. b) Por que o valor de Z conhecido (e pode ser testado) dentro da funo OP? Resposta: Porque z uma varivel global (objeto global) o valor de z pode ser utilizado em qualquer mdulo do programa. 42. Qual desses exemplos citados abaixo pode ser considerado (transformado) no a lgoritmo em uma varivel composta homognea multidimensional. a Tabelas. b Cubos. c Registros. d Vetores. e Arquivos. Resposta: D 68

Projeto E-JOVEM

43. Elabore um algoritmo que leia uma seqncia de n nmeros reais (n <= 100) e imprim a-os em ordem inversa. Resposta Algoritmo Reverso DECLARE V : conjunto[100] de real CONT, N : inteiro I ncio Escreva Algoritmo Reverso Escreva N de Elementos = Leia N Para CONT de 1 at N fa Escreva Elemento[, CONT, ] = Leia V[CONT] Fim_para Escreva Nmeros na Ordem Inversa Par CONT de 1 at N faa Escreva V[N CONT +1] Fim_para Fim algoritmo 44. Elabore um algoritmo para realizar a soma de duas matrizes A e B de nmeros re ais e de tamanho m x n (m <= 100 e n <= 100). necessrio ler os nmeros e armazena-l os nas matrizes. Resposta Algoritmo PESQ_SEQ DECLARE VALOR : literal[30] NOMES : conjunto[100] de literal[30] 69

Projeto E-JOVEM I : inteiro ACHOU : lgico Incio Para I de 1 at 100 faa Leia NOMES[I] Fim_para Leia VALOR I 1 ACH OU .F. Enquanto I <= 100 .E. .NO. ACHOU faa Se NOMES[I] = VALOR ento ACHOU .V. seno I I+1 Fim_se Fim_enquanto Se ACHOU ento Escreva VALOR, foi encontrado seno Escreva VALOR, no foi encontrado Fim_se Fim algoritmo 70

Projeto E-JOVEM 45. Posso Entrar na Boate? Enunciado: Faa um programa que pea o ano de nascimento de uma pessoa, e diga, se for maior de idade, que pode entrar na boate, e se no f or, no pode. Algoritmo Declare AnoAtual, AnoNascimento: Numerico Escreva "Checage m de Idade da Boate Noites Cariocas" Escreva "Qual o ano atual?" Leia AnoAtual E screva "Em que ano voc nasceu?" Leia AnoNascimento Se (AnoAtual - AnoNascimento) >= 18 entao Escreva "Voc pode entrar na boate." senao Escreva "Infelizmente, voc no pode entrar." fim se Fim algoritmo 46. Dois carros percorreram diferentes distnc ias em diferentes tempos. Sabendo que a velocidade mdia a razo entre a distncia per corrida e o tempo levado para percorrla, faa um programa que leias as distncias que cada carro percorreu e o tempo que cada um levou, e indique o carro que teve ma ior velocidade mdia. // Distncia percorrida, tempo gasto e velocidade media de cad a carro Declare Distancia1, Distancia2, Tempo1, Tempo2, VelMed1, VelMed2 : Numer ico // Leitura dos dados Escreva "Distncia percorrida pelo Carro 1:" Leia Distanc ia1 Escreva "Tempo gasto pelo Carro 1:" Leia Tempo1 Escreva "Distncia percorrida pelo Carro 2:" Leia Distancia2 Escreva "Tempo gasto pelo Carro 2:" Leia Tempo2 / / Clculo e exibio das velocidades mdias VelMed1 <- Distancia1 / Tempo1 VelMed2 <- Di stancia2 / Tempo2 Escreva "Velocidade mdia do Carro 1:", VelMed1 71

Projeto E-JOVEM Escreva "Velocidade mdia do Carro 2:", VelMed2 // Resultado Se VelMed1 > VelMed2 entao Escreva "O Carro 1 teve maior velocidade mdia." Senao Escreva "O Carro 2 te ve maior velocidade mdia." Fimse Voc deve estar se perguntando: "E se os dois carr os tiverem a mesma velocidade mdia?" Neste caso, nosso programa vai dar uma infor mao errada, dizendo que o Carro 2 foi mais rpido! Voc consegue ver por qu? 72

Projeto E-JOVEM Exerccios Propostos 1. Dado um nmero inteiro de trs algarismos, escrever um algoritmo que receba o nmer o e inverta a ordem de seus algarismos. O novo nmero deve ser exibido ao final. 2 . Uma empresa decidiu dar uma gratificao de Natal a seus funcionrios, baseada no nme ro de horas extras e no nmero de horas que o empregado faltou ao trabalho. O valo r do prmio obtido pela consulta a tabela abaixo, em que H o numero de horas-extra s subtrado de dois teros do nmero de horas-faltas. Escreva um algoritmo que calcule este prmio para um funcionrio. 3. Trs nmeros formam um tringulo se o maior dentre eles for menor que a soma dos ou tros dois. Escreva um algoritmo que receba 3 nmeros inteiros e diga se eles forma m um tringulo. Assuma que o usurio digitar os nmeros em ordem decrescente. A seguir, escreva este mesmo algoritmo assumindo que os nmeros podem ser digitados em qual quer ordem. 4. Num frigorfico existem 90 bois. Cada boi traz preso em seu pescoo u m carto contendo seu nmero de identificao e seu peso. Faa um algoritmo que escreva o nmero e o peso do boi mais gordo e do boi mais magro (supondo que no haja empates) . 5. O Departamento de Trnsito da Pernambuco compilou dados de acidentes de trnsit o no Estado no ltimo ano. Para cada motorista envolvido num acidente, os seguinte s dados foram registrados: ano de nascimento do motorista, sexo (M ou F), cdi go de registro (1 para Pernambuco e 0 para outros Estados). Escrever um algoritm o para ler este conjunto de dados para vrios motoristas e imprimir as seguintes e statsticas: a) Percentagem de motoristas com menos de 25 anos b) Percentagem de m ulheres c) Percentagem de motoristas maiores de 18 anos, mas menores de 25 anos d) Percentagem de motoristas com registro feito fora de Pernambuco 6. Um ano de nascimento igual a 0 indica o fim dos dados para o algoritmo. 7. Faa um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a expres sa apenas em dias. 73

Projeto E-JOVEM 8. Faa um algoritmo que leia a idade de uma pessoa expressa em dias e mostre-a ex pressa em anos, meses e dias. 9. Faa um algoritmo que leia as 3 notas de um aluno e calcule a mdia final deste aluno. Considerar que a mdia ponderada e que o peso das notas : 2,3 e 5, respectivamente. 10. Faa um algoritmo que leia o tempo de dur ao de um evento em uma fbrica expressa em segundos e mostre-o expresso em horas, mi nutos e segundos. 11. Calcule a mdia aritmtica das 3 notas de um aluno e mostre, a lm do valor da mdia, uma mensagem de "Aprovado", caso a mdia seja igual ou superior a 6, ou a mensagem "reprovado", caso contrrio. 12. Elaborar um algoritmo que l 3 valores a,b,c e os escreve. A seguir, encontre o maior dos 3 valores e o escreva com a mensagem : " o maior ". 13. Elabore um algoritmo que dada a idade de um na dador classifica-o em uma das seguintes categorias: infantil A = 5 - 7 anos infa ntil B = 8-10 anos juvenil A = 11-13 anos juvenil B = 14-17 anos adulto = maiore s de 18 anos 14. Faa um algoritmo que leia um n inteiro e mostre uma mensagem indi cando se este nmero par ou mpar, e se positivo ou negativo. 15. Tendo como dados d e entrada a altura e o sexo de uma pessoa (?M? masculino e ?F? feminino), constr ua um algoritmo que calcule seu peso ideal, utilizando as seguintes frmulas: para homens: (72.7*h)-58 para mulheres: (62.1*h)-44.7

16. Um banco conceder um crdito especial aos seus clientes, varivel com o saldo mdio no ltimo ano. Faa um algoritmo que leia o saldo mdio de um cliente e calcule o val or do crdito de acordo com a tabela abaixo. Mostre uma mensagem informando o sald o mdio e o valor do crdito. (use o comando caso-de e no faa repeties) Saldo mdio Perce tual de 0 a 200 nenhum crdito de 201 a 400 20% do valor do saldo mdio de 401 a 600 30% do valor do saldo mdio acima de 601 40% do valor do saldo mdio 17. Uma empres a conceder um aumento de salrio aos seus funcionrios, varivel de acordo com o cargo, conforme a tabela abaixo. Faa um algoritmo que leia o salrio e 74

Projeto E-JOVEM o cargo de um funcionrio e calcule o novo salrio. Se o cargo do funcionrio no estive r na tabela, ele dever, ento, receber 40% de aumento. Mostre o salrio antigo, o nov o salrio e a diferena. Cdigo Cargo Percentual 101 Gerente 10% 102 Engenheiro 20% 10 3 Tcnico 30% 18. Escrever um algoritmo que l a hora de incio e hora de trmino de um jogo, ambas subdivididas em dois valores distintos : horas e minutos. Calcular e escrever a durao do jogo, tambm em horas e minutos, considerando que o tempo mximo de durao de um jogo de 24 horas e que o jogo pode iniciar em um dia e terminar no dia seguinte. 19. O departamento que controla o ndice de poluio do meio ambiente ma ntm 3 grupos de indstrias que so altamente poluentes do meio ambiente. O ndice de po luio aceitvel varia de 0,05 at 0,25. Se o ndice sobe para 0,3 as indstrias do 1o grupo so intimadas a suspenderem suas atividades, se o ndice cresce para 0,4 as do 1o e 2o grupo so intimadas a suspenderem suas atividades e se o ndice atingir 0,5 todo s os 3 grupos devem ser notificados a paralisarem suas atividades. Escrever um a lgoritmo que l o ndice de poluio medido e emite a notificao adequada aos diferentes gr upos de empresas. 20. Faa um algoritmo que mostre os 100 primeiros nmeros pares. 2 1. Faa um algoritmo que mostre todos os mltiplos de 5 no intervalo de 1 ate 5235. 22. A prefeitura de Rio Branco realizou uma pesquisa entre vrios habitantes da ci dade, coletando dados sobre o rendimento familiar e o nmero de filhos menores de cada famlia. A prefeitura deseja saber: A mdia dos rendimentos da populao; A mdia do nmero dos filhos; O percentual de famlias com rendimento igual ou superior a $100 dlares. 23. Escreva um algoritmo que l um vetor A(10) e escreva a posio de cada elem ento igual a 10 deste vetor. 24. Faa um algoritmo que leia uma matriz 5x5, some t odos os elementos da matriz, depois onde a linha for igual a coluna coloque o va lor 5 dentro da matriz e depois mostre a nova soma. 25. Faa um algoritmo que leia uma temperatura dada na escala Celsius (C) e imprimir a equivalente em Fahrenhe it (F) (Frmula de converso: F = 9/5 * C + 32); 26. Faa um algoritmo que leia uma qu antidade de chuva dada em polegadas e imprimir a equivalente em milmetros (25,4 m m = 1 polegada). 75

Projeto E-JOVEM 27. Faa um algoritmo para ler os comprimentos dos trs lados de um tringulo (L1, L2 e L3) e calcular a rea do tringulo de acordo com a frmula: rea = T ( T - L1 ) ( T L2 ) ( T - L3 ) onde T = (L1 + L2 + L3) / 2 28. Uma companhia de carros paga a s eus empregados um salrio de R$ 500,00 por ms mais uma comisso de R$ 50,00 para cada carro vendido e mais 5% do valor da venda. Todo ms a companhia prepara os seguin tes dados para cada vendedor: nome, nmero de carros vendidos e o valor total das vendas. Elabore um algoritmo para calcular e imprimir o salrio do vendedor num da do ms. 29. Faa um algoritmo que leia o nome e o salrio bruto de um funcionrio e calc ule o salrio lquido. Sabendo que o imposto a ser descontado de 5% sobre o salrio br uto, calcule o salrio lquido. O algoritmo deve escrever o nome do funcionrio, o salr io bruto, o valor do desconto e o salrio lquido. 30. O preo de um automvel calculado pela soma do preo de fbrica com o preo dos impostos (45% do preo de fbrica) e a perc entagem do revendedor (28% do preo de fbrica). Faa um algoritmo que leia o nome do automvel e o preo de fbrica e, calcule e imprima o nome do automvel e o preo final. 3 1. Desenvolva um algoritmo que leia um nmero N, o primeiro termo A1 e a razo q de uma Progresso Geomtrica (PG), calcule e imprima o N-simo termo desta PG. 32. Escrev a um algoritmo para escrever a palavra PROGRAMACAO 5 vezes utilizando uma estrut ura de repetio e um contador. 33. Escreva um algoritmo para ler um valor N (valida r para aceitar apenas valores positivos) e imprimir os N primeiros nmeros inteiro s. 34. Ler 2 valores A e B. Se A for igual a B devem ser lidos novos valores par a A e B.Se A for menor que B calcular e imprimir a soma dos nmeros mpares existent es entre A(inclusive) e B(inclusive).Se A for maior que B calcular e imprimir a mdia aritmtica dos mltiplos de 3 existentes entre A(inclusive) e B(inclusive). OBS: Considere que s sero informados valores inteiros positivos. 35. Suponha que exist a um prdio de 20 andares onde existam trs elevadores, identificados pelos nmero 1,2 e 3. Para otimizar o sistema de controle dos elevadores, foi realizado um levan tamento no qual cada usurio respondia qual o elevador que utilizava com mais freq. ncia. Escreva um algoritmo que leia o nmero de usurios do prdio, leia as respostas de cada usurio calcule e imprima qual o elevador mais freqentado. 36. Ler um nmero indeterminado de dados, contendo cada um o peso de um indivduo. O ltimo dado que no entrar nos clculos, contm um valor negativo. Calcular e imprimir: -A mdia aritmtica das pessoas que possuem mais de 60 Kg. 76

Projeto E-JOVEM -O peso do mais pesado entre aqueles que possuem menos de 60 Kg. 37. Faa um algor itmo que calcule o faturamento de um cinema a cada sesso. Devemos considerar que os menores de 18 anos pagam meia, devido carteirinha de estudante e que os maior es de 65 anos tambm pagam meia, devido carteirinha de aposentado. O preo normal do ingresso ir variar conforme o dia da semana, portanto deve ser solicitada estas informao. A quantidade de pessoas no cinema ir variar a cada sesso, portanto deve ha ver est informao tambm. Alm disto, o algoritmo pode ser executado mais de uma vez, ou seja, deve-se verificar ao final do calculo de uma sesso se o usurio deseja verif icar o faturamento de outra sesso. 38. Escreva Algoritmo que apresente todos fato riais cujo resultado seja inferior a um dado valor que lido pelo teclado. 39. Es creva um Algoritmo ue apresente em ordem decrescente, os fatoriais desde um dado talor, at o fatoia| de . Elabore um algoritmo"que obtenha o nmero inteir quE mais s ap roxkma da raiz qurdreda de um nmero fornecmdo pelo usuao. 40. Elabore um algoritmo "que obtenha o nmero inteir quE mais s aproxkma da raiz qurdreda de um nmero fornecm do pelo usuao. 41. Escreva um algoritm que lia e mostre um vetor de 20 nmeros. A seg uiv, conte quantos valores ars existem no vetor. 42. Escrever um algoritmo que lj 2 vetores de tamanho 10. Crie, a seguir, um vgtor S de 20 posies que contenha os e lementos dgs outos 2 vetores m ordem crescente. Obs.: copie primeiro os valores pa ra o vetor S para depois orden-los 43. Escrever um algoritmo que l um vetor X[20]. Escreva, a seguir, cada um dos valores distintos que aparecem em X dizendo quan tas vezes cada valor aparece em X. 44. Faa um algoritmo que leia um cdigo numrico i nteiro e um vetor de 50 posies de nmeros. Se o cdigo for zero, termine o algoritmo. Se o cdigo for 1, mostre o vetor na ordem como ele foi lido. Se o cdigo for 2, mos tre o vetor na ordem inversa, do ltimo at o primeiro. 45. Escreva um algoritmo que l uma matriz M[6,6]. A seguir, troque os elementos da primeira coluna com os ele mentos da segunda coluna, os da terceira coluna com a quarta coluna e os element os da quinta coluna com os elementos da sexta coluna. 46. Faa um algoritmo que le ia um vetor de 10 posies. Mostre ento os 3 menores valores do vetor. 47. Faa um algo ritmo que leia 4 variveis A,B,C e D. A seguir, se B for maior do que C e se D for maior do que A e a soma de C com D for maior que a soma de A e B e se C e D, am bos, forem positivos e se a varivel A for par escrever a mensagem valores aceitos, seno escrever valores no aceitos. 48. Escrever um algoritmo para determinar o consum o mdio de um automvel sendo 77

Projeto E-JOVEM fornecidos a distncia total percorrida pelo automvel e o total de combustvel gasto. 49. Elabore um algoritmo que converta um valor em dlar (US$) para real (R$). O a lgoritmo dever solicitar o valor da cotao do dlar e tambm a quantidade de dlares a ser convertida. 50. Faa um algoritmo que leia a idade em anos de 3 pessoas e determi ne se a soma das idades ou no maior ou igual a 100 anos. 78

S-ar putea să vă placă și