Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
AlgoritmosAlgoritmos Terceira ParteTerceira Parte InstrutorInstrutor �� Cyro Cyro ThadeuThadeu –– EE--mail : mail : cyro.thadeu@gmail.comcyro.thadeu@gmail.com –– MSN : MSN : cyrothadeu@hotmail.comcyrothadeu@hotmail.com Estruturas CondicionaisEstruturas Condicionais �� Estruturas condicionais, são responsEstruturas condicionais, são responsááveis veis por controlar o fluxo de um algoritmo, do por controlar o fluxo de um algoritmo, do tipo: Que rumo devo tomar ?tipo: Que rumo devo tomar ? �� Estruturas condicionais, são efetuadas a Estruturas condicionais, são efetuadas a partir de lpartir de lóógica gica booleanabooleana (Verdadeiros e (Verdadeiros e Falsos).Falsos). �� ““Se um condiSe um condiçção for verdadeira, então, algo ão for verdadeira, então, algo iriráá acontecer, senão, outra coisa pode acontecer, senão, outra coisa pode aconteceracontecer””.. Estruturas CondicionaisEstruturas Condicionais Programa Programa NumeroMagicoNumeroMagico VarVar numero : inteironumero : inteiro InicioInicio escreva escreva ““Digite um nDigite um núúmero: mero: ”” leia (numero)leia (numero) se (numero == 10)se (numero == 10) escreva escreva ““ParabensParabens você acertou!você acertou!”” se nãose não escreva escreva ““VoceVoce errou =(errou =(”” fim sefim se FimFim Estruturas CondicionaisEstruturas Condicionais �� A idA idééia do programa acima ia do programa acima éé: O Usu: O Usuáário rio tenta adivinhar o ntenta adivinhar o núúmero mmero máágico ( no caso gico ( no caso éé 10 ), 10 ), ““se o nse o núúmero que o usumero que o usuáário digitou rio digitou for igual a 10, uma mensagem gratificandofor igual a 10, uma mensagem gratificando-- o sero seráá exibida, caso contrexibida, caso contráário, uma rio, uma mensagem de erro sermensagem de erro seráá exibidaexibida”” �� Note o desvio de fluxo do programa com a Note o desvio de fluxo do programa com a estrutura condicional.estrutura condicional. Estruturas CondicionaisEstruturas Condicionais �� Operadores CondicionaisOperadores Condicionais ( x ( x ==== y ) y ) –– Verifica se x Verifica se x éé igualigual a y a y ( x ( x <=<= y) y) –– Verifica se x Verifica se x éé menor ou igualmenor ou igual a ya y ( x ( x >=>= y ) y ) -- Verifica se x Verifica se x éé maior ou igualmaior ou igual a ya y ( x ( x !=!= y ) y ) –– Verifica se x Verifica se x éé diferente dediferente de yy ( x ( x >> y ) y ) –– Verifica se x Verifica se x éé maior do quemaior do que yy ( x ( x << y ) y ) –– Verifica se x Verifica se x éé menor do quemenor do que yy Estruturas CondicionaisEstruturas Condicionais �� Efetuando condiEfetuando condiççõesões –– CondiCondiçções podem ser efetuadas ( agrupadas ) ões podem ser efetuadas ( agrupadas ) para formando uma expressão lpara formando uma expressão lóógica.gica. –– Ex: se ((idade >= 18) e (status == Ex: se ((idade >= 18) e (status == ‘‘ativoativo’’)) )) então ...então ... –– O RaciocO Raciocíínio nio éé efetuado da seguinte forma:efetuado da seguinte forma: �� Imagine que o valor da variImagine que o valor da variáável idade seja 18, logo a vel idade seja 18, logo a primeira condiprimeira condiçção serão seráá atendida, dizemos que estatendida, dizemos que estáá condicondiçção ão éé verdadeiraverdadeira �� Agora, imagine que o valor da variAgora, imagine que o valor da variáável status seja igual vel status seja igual a a ‘‘ativoativo’’, logo a segunda condi, logo a segunda condiçção tambão tambéém serm seráá atendida ( verdadeira )atendida ( verdadeira ) Estruturas CondicionaisEstruturas Condicionais �� Efetuando CondiEfetuando Condiççõesões –– EstEstáá seria uma condiseria uma condiçção composta. O operador ão composta. O operador llóógico gico ““ee”” liga as duas condiliga as duas condiçções.ões. –– Para que o bloco de cPara que o bloco de cóódigo seja executado, digo seja executado, éé necessnecessáário que a condirio que a condiçção inteira seja ão inteira seja verdadeira.verdadeira. –– Utilizando o operador lUtilizando o operador lóógico gico ““ee””, para que a , para que a condicondiçção inteira seja verdadeira, ão inteira seja verdadeira, éé necessnecessáário rio que cada condique cada condiçção que a compõe, sejam ão que a compõe, sejam verdadeiras.verdadeiras. Estruturas Estruturas ConcionaisConcionais �� se (idade == 18) e (status == se (idade == 18) e (status == ‘‘ativoativo’’) ) entaoentao VV e e VV VV �� Considerando que idade seja 18 e Considerando que idade seja 18 e status seja status seja ‘‘ativoativo’’ a condia condiçção inteira ão inteira resultara em resultara em verdadeiroverdadeiro Estruturas CondicionaisEstruturas Condicionais �� Operadores LOperadores Lóógicosgicos –– Operador lOperador lóógico gico ““ee”” ( && ) ( && ) –– Para a condiPara a condiçção ão inteira se efetuada, todas as outras condiinteira se efetuada, todas as outras condiçções ões devem resultar em devem resultar em verdadeiro, verdadeiro, caso alguma caso alguma resulte em resulte em falsofalso, então toda a condi, então toda a condiçção ira ser ão ira ser falsafalsa –– Operador lOperador lóógico gico ““ouou”” ( || ) ( || ) –– Para a condiPara a condiçção ão inteira ser efetuada, basta apenas uma das inteira ser efetuada, basta apenas uma das condicondiçções que a compõem ser ões que a compõem ser ““verdadeiraverdadeira””, , caso as duas ou todas as outras condicaso as duas ou todas as outras condiçções ões derem derem falso, falso, toda a expressão resultartoda a expressão resultaráá em em falso.falso. Estruturas CondicionaisEstruturas Condicionais �� Sendo assim, podemos Sendo assim, podemos orgarnizarorgarnizar a: a: Tabela Verdade.Tabela Verdade. �� Operador Operador ““EE”” ??FalsoFalsoEEFalsoFalso ??VerdadeiroVerdadeiroE E FalsoFalso ??FalsoFalsoEEVerdadeiroVerdadeiro ??VerdadeiroVerdadeiroEEVerdadeiro Verdadeiro Estruturas CondicionaisEstruturas Condicionais �� Operador Operador ““ouou”” ??FalsoFalsoOUOUFalsoFalso ??VerdadeirVerdadeir oo OU OU Falso Falso ??FalsoFalsoOUOUVerdadeirVerdadeir oo ??VerdadeirVerdadeir oo OUOUVerdadeirVerdadeir oo Estruturas CondicionaisEstruturas Condicionais �� Operador de NegaOperador de Negaçção ão ““NOTNOT”” ( ( !! )) –– O Operador de negaO Operador de negaçção serve para inverter toda ão serve para inverter toda a condia condiçção ( negara condião ( negara condiçção ).ão ). �� Ex: se (não(idade == 18) e (status == Ex: se (não(idade == 18) e (status == ‘‘ativoativo’’)) )) entaoentao.... �� No caso desta condiNo caso desta condiçção se não existião se não existi--se o operador de se o operador de neganegaçção esta expressão resultaria em ão esta expressão resultaria em verdadeiroverdadeiro, , mas, com o uso do operador, o resultado mas, com o uso do operador, o resultado éé invertido e invertido e passa a ser passa a ser falsofalso o resultado da expressãoo resultado da expressão �� O Operador de negaO Operador de negaçção sendo aplicado desta maneira ão sendo aplicado desta maneira ( no inicio da expressão ), ir( no inicio da expressão ), iráá inverter a expressão inverter a expressão inteirainteira �� O operador pode ser usada tambO operador pode ser usada tambéém para cada uma m para cada uma das condidas condiçções. ões. Estruturas CondicionaisEstruturas Condicionais �� Operador de NegaOperador de Negaçção ão ““NÃONÃO”” ( ! )( ! ) ??FalsoFalso||||FalsoFalsoNÃONÃO ??FalsoFalso&& && NÃONÃOVerdadeiroVerdadeiro ??VerdadeiroVerdadeiro|| NÃO|| NÃOFalsoFalso ??FalsoFalso&&&&VerdadeiroVerdadeiroNÃONÃO ExercExercíícioscios �� Crie um algoritmo que peCrie um algoritmo que peçça para o usua para o usuáário informar o nome e a idade, caso a idade seja rio informar o nome e a idade, caso a idade seja maior ou igual a 18, apresentar a mensagem maior ou igual a 18, apresentar a mensagem ““Maior de IdadeMaior de Idade”” caso contrcaso contráário apresentar rio apresentar a Mensagem a Mensagem ““Menor de IdadeMenor de Idade”” �� Crie um algoritmo que peCrie um algoritmo que peçça para o usua para o usuáário informar um nrio informar um núúmero, verifique se o nmero, verifique se o núúmero mero estestáá entre 1 e 10.entre 1 e 10. �� Crie um algoritmo que leia o saldo da conta bancaria do usuCrie um algoritmo que leia o saldo da conta bancaria do usuáário, e leia um valor para rio, e leia um valor para saque, verifique se existe saldo suficiente para sacar o valor isaque, verifique se existe saldo suficiente para sacar o valor informado.nformado. �� Crie um algoritmo que calcule a mCrie um algoritmo que calcule a méédia de 4 notas de um aluno, e verifique se a mdia de 4 notas de um aluno, e verifique se a méédia dia for maior do que 7 apresentar a mensagem for maior do que 7 apresentar a mensagem ““AprovadoAprovado”” na tela caso contrna tela caso contráário rio apresentar a mensagem apresentar a mensagem ““ReprovadoReprovado”” �� Crie um algoritmo que leia respostas de um questionCrie um algoritmo que leia respostas de um questionáário.Verifique se todas as respostas rio.Verifique se todas as respostas estão certas, caso estejam apresentar a mensagem : estão certas, caso estejam apresentar a mensagem : ““ParabensParabens você passou no testevocê passou no teste”” –– Em que ano nEm que ano nóós estamos ?s estamos ? –– Em quanto resultada a seguinte Em quanto resultada a seguinte expressaoexpressao (((2 * 4) / 4) + 10) (((2 * 4) / 4) + 10) –– 2 ?2 ? –– Qual o mês que possui 28 dias ?Qual o mês que possui 28 dias ? –– Quantos segundos tem em 1 minuto ?Quantos segundos tem em 1 minuto ? –– Quanto seria 38 graus Quanto seria 38 graus celsiuscelsius em em ““KK”” Kelvin ( K = C + 273 )Kelvin ( K = C + 273 ) �� Crie um algoritmo que receba dois nCrie um algoritmo que receba dois núúmeros e diga qual deles meros e diga qual deles éé o maior. Se forem iguais, o maior. Se forem iguais, dizer que são iguaisdizer que são iguais �� Crie um algoritmo que pergunta o nome de usuCrie um algoritmo que pergunta o nome de usuáário e a senha para entrada no sistema, rio e a senha para entrada no sistema, caso caso usuariousuario e senha seja iguais a e senha seja iguais a ““adminadmin”” apresentar: Administrador do Sistemaapresentar: Administrador do Sistema Estruturas de Estruturas de RepetiRepetiçção(ão(LoopsLoops)) �� As estruturas de repetiAs estruturas de repetiçção auxiliam ão auxiliam para quando precisar executar uma para quando precisar executar uma operaoperaçção por um determinado não por um determinado núúmero mero de vezes, percorrer uma lista e etc...de vezes, percorrer uma lista e etc... Estruturas de RepetiEstruturas de Repetiççãoão �� Para ...Para ... –– Algoritmo que imprime os 10 primeiros Algoritmo que imprime os 10 primeiros nnúúmeros:meros: �� ParaPara contador := 0 atcontador := 0 atéé 10 10 fafaççaa escreva contadorescreva contador contador := contador + 1contador := contador + 1 Fim ParaFim Para Estruturas de RepetiEstruturas de Repetiççãoão �� Neste caso, a variNeste caso, a variáável contador vel contador éé inicializadainicializada com o valor 0, para cada com o valor 0, para cada interainteraçção do bloco ( ão do bloco ( looploop ) o valor da ) o valor da varivariáável vel éé impresso, e incrementado.impresso, e incrementado. �� O O LoopLoop ssóó iriráá terminar quando a terminar quando a varivariáável contador tiver o valor 10 vel contador tiver o valor 10 Estruturas de RepetiEstruturas de Repetiççãoão �� EnquantoEnquanto ...... –– O cO cóódigo abaixo irdigo abaixo iráá imprimir os 20 imprimir os 20 primeiros nprimeiros núúmerosmeros contador := 0contador := 0 enquanto (contador < 20) faenquanto (contador < 20) faççaa escreva contadorescreva contador contador := contador + 1contador := contador + 1 fim enquantofim enquanto Estruturas CondicionaisEstruturas Condicionais �� A estrutura A estrutura enquanto enquanto éé similar ao similar ao parapara, mas com alguns detalhes, mas com alguns detalhes –– A variA variáável que serve como contador para vel que serve como contador para a interaa interaçção ão éé declarada fora da clausuladeclarada fora da clausula –– A estrutura ira se repetir enquanto a A estrutura ira se repetir enquanto a condicondiçção passada for verdadeiraão passada for verdadeira �� enquantoenquanto ((condicondiççaoao) ) fafaççaa ........ fim enquantofim enquanto ExercExercíícioscios �� Crie um algoritmo que imprima os 100 primeiros nCrie um algoritmo que imprima os 100 primeiros núúmeros ( meros ( parapara )) �� Crie um algoritmo que imprima os 188 primeiros nCrie um algoritmo que imprima os 188 primeiros núúmeros ( meros ( enquantoenquanto )) �� Crie um algoritmo que imprima a tabuada de 5 ( Crie um algoritmo que imprima a tabuada de 5 ( parapara )) �� Crie um algoritmo quem repita a mensagem: Crie um algoritmo quem repita a mensagem: ““ Você deseja Você deseja sair do sistema ? sair do sistema ? ”” atatéé que o usuque o usuáário digite rio digite ““simsim”” �� Crie um algoritmo que apresente um menu com 5 opCrie um algoritmo que apresente um menu com 5 opçções ões para o usupara o usuáário, e que fique aguardando o usurio, e que fique aguardando o usuáário escolher rio escolher uma. Repetir atuma. Repetir atéé que o usuque o usuáário escolha a oprio escolha a opçção de Sair (5).ão de Sair (5). MatrizesMatrizes �� Matrizes são conjuntos de valores definidos em Matrizes são conjuntos de valores definidos em um mesmo espaum mesmo espaçço. Matrizes de certa forma são o. Matrizes de certa forma são tabelas.tabelas. –– Matriz de PessoasMatriz de Pessoas ““CarolinaCarolina””33 ““MariaMaria””22 ““JoaquimJoaquim””11 ““JoãoJoão””00 ValorValorPosiPosiççãoão MatrizesMatrizes �� Qual o nome que seria apresentado fosse Qual o nome que seria apresentado fosse feito ( matriz pessoas na posifeito ( matriz pessoas na posiçção 2 ): ão 2 ): escreva Pessoas[2] ??escreva Pessoas[2] ?? �� Uma matriz na memUma matriz na memóória ria éé um conjunto de um conjunto de varivariááveis veis inicializadasinicializadas com, e ordenadas em com, e ordenadas em lista, com um identificador comum a elas ( lista, com um identificador comum a elas ( apelido ), mas cada uma delas apelido ), mas cada uma delas possupossu um um endereendereçço bino bináário especrio especíífico que são fico que são astraastraíídosdos em posiem posiçções de uma matriz.ões de uma matriz. MatrizesMatrizes �� Uma matriz quando declarada, necessita Uma matriz quando declarada, necessita definir o tamanho da matriz ( ndefinir o tamanho da matriz ( núúmero de mero de posiposiçções ) e o tipo de dados que essa matriz ões ) e o tipo de dados que essa matriz vai suportar:vai suportar: –– Ex: pessoas : matriz[1..10] de Ex: pessoas : matriz[1..10] de charactercharacter;; �� Na declaraNa declaraçção acima ão acima éé definido uma matriz definido uma matriz de 10 poside 10 posiçções do tipo ões do tipo caractercaracter.. �� Logo serLogo seráá reservado na memreservado na memóória 10 lugares ria 10 lugares que aguardam que aguardam ““tipos tipos caractercaracter”” e esse e esse espaespaçço reservado o reservado éé apelidado de de apelidado de de pessoaspessoas.. MatrizesMatrizes �� Percorrendo uma matriz.Percorrendo uma matriz. VarVar contado : inteirocontado : inteiro nomes : matriz[1..10] de nomes : matriz[1..10] de caractercaracter InicioInicio para contador : = 0 ate 10 fapara contador : = 0 ate 10 faççaa escreva nomes[contador]escreva nomes[contador] fim parafim para FimFim MatrizesMatrizes �� ““Juntando o Juntando o úútil ao agradtil ao agradáávelvel””, a , a manipulamanipulaçção de matrizes ão de matrizes éé diretamente ligada as estruturas de diretamente ligada as estruturas de repetirepetiçção.ão. �� Para percorrer uma matriz um criPara percorrer uma matriz um criáá--la la dinâmicamentedinâmicamente utilizautiliza--se uma das se uma das estruturas de repetiestruturas de repetiççãoão ExercExercíícioscios �� Crie um algoritmo que leia 10 nomes e Crie um algoritmo que leia 10 nomes e armazene em uma matriz ( sem estrutura armazene em uma matriz ( sem estrutura de repetide repetiçção ).ão ). �� Crie um algoritmo com base no anterior Crie um algoritmo com base no anterior quem imprima quem imprima dinâmicamentedinâmicamente os 10 nomes. os 10 nomes. �� Crie um algoritmo que leia de uma matriz Crie um algoritmo que leia de uma matriz de 200 poside 200 posiçções 200 valores e calcule a ões 200 valores e calcule a mméédia deles.dia deles. Matrizes Matrizes MultidimêncionaisMultidimêncionais �� ÉÉ possivelpossivel criar matrizes criar matrizes multidimêncionaismultidimêncionais ( v( váárias linhas e vrias linhas e váárias coluna ).rias coluna ). �� PessoaPessoa 1515““AnaAna””33 2626““MariaMaria””22 4545““JoãoJoão””11 5353““JoaquinJoaquin””00 Linhas Colunas Matrizes Matrizes MultidimêncionaisMultidimêncionais �� DeclaraDeclaraççãoão varvar Pessoas : matriz[1..10][1..2] de Pessoas : matriz[1..10][1..2] de charactercharacter;; InicioInicio pessoas[1][1] := pessoas[1][1] := ““JoaquinJoaquin”” pessoas[1][2] := pessoas[1][2] := ““5353”” pessoas[2][1] := pessoas[2][1] := ““JoaoJoao”” pessoas[2][2] := pessoas[2][2] := ““4545”” pessoas[3][1] := pessoas[3][1] := ““AnaAna”” pessoas[3][2] := pessoas[3][2] := ““2626”” FimFim ExercExercíícioscios �� Crie um algoritmo que leia do teclado Crie um algoritmo que leia do teclado 10 nomes,e10 nomes,e--mails,telefones e mails,telefones e armazene em uma matriz armazene em uma matriz multidimêncionalmultidimêncional, ao final imprimir a , ao final imprimir a matriz.matriz.