Download - Introducao a Logica de Programacao
-
5/28/2018 Introducao a Logica de Programacao
1/28
ndice
Introduo lgica de programao1 ................................................................................1
1.1.Noes de lgica......................................................................................................................1
1.2.Algoritmos.............................................................................................................................. 2
1.3.Linhas de Cdigo de um Algoritmo ou Programa...............................................................5
1.4.Eecu!o do Programa..........................................................................................................5
1.5.Coment"rios............................................................................................................................#
1.#.Constantes...............................................................................................................................#
1.$.%ari"&eis........................................................................................................................... ......#
1.'.Estrutura do algoritmo..........................................................................................................(
1.(.)*eradores aritm+ticos........................................................................................................1,
1.1,.)*eradores relacionais..................................................................................................... .1,
1.11.)*eradores lgicos.............................................................................................................1,
1.12.-egras de *recedncia........................................................................................................1,
1.13.Atri/ui!o......................................................................................................................... ..11
1.14.Comandos de entrada e sa0da............................................................................................11
1.15.Estruturas de controle................................................................................................ .......13
1.1#.Estrutura seencial.......................................................................................................... 13
1.1$.Estruturas de sele!o........................................................................................................ .13
1.1'.Estruturas de re*eti!o......................................................................................................1'
1.1(.%etores................................................................................................................................ 221.2,.atries............................................................................................................................. .24
Introduo lgica de programao1
1.1. Noes de lgica
A lgica a ao do pensamento humano para a soluo de problemas do dia-a-dia mas, podetambm, ser a origem de outros problemas. a caracterstica do pensamento correto. A lgica busca acorreo do raciocnio, e determinante nas tomadas de decises. Por isso a lgica ensina a colocarordem no pensamento. A lgica est presente nas aes da nossa ida! "uando #alamos ou escreemos
algo, por e$emplo, deemos ordenar as palaras de #orma lgica, de modo a e$pressar corretamente o"ue pensamos, o "ue sentimos e o "ue "ueremos.
%$emplo! & carro est com o pneu a'io. & macaco e a chae de rodas esto no porta-malas. Preciso primeiro pegar o macaco e a chae de rodas, para depois tomar outro passo para trocar o
pneu do carro.
-
5/28/2018 Introducao a Logica de Programacao
2/28
1.2. Algoritmos
Algoritmo uma se"()ncia de aes, organi'adas de #orma lgica, "ue isam alcanar um ob*etiobem de#inido.
Apesar do nome parecer estranho, algoritmos so comuns em nosso cotidiano, como por e$emplouma receita de bolo. +ela est descrita uma srie de ingredientes necessrios, uma se"()ncia de
diersos passos aes a serem executadospara "ue se consiga #a'er determinado tipo de boloob*etio bem de#inido.
%$emplo! roca de uma l/mpada.
pegue uma escada0posicione-a embai$o da l/mpada0bus"ue uma l/mpada noasuba na escada0retire a l/mpada elha0colo"ue a l/mpada noa0
%sse algoritmo tem um ob*etio, trocar uma l/mpada, e #a' isso bem. 1as troca a l/mpada mesmo
"ue ela no este*a "ueimada.Podemos melhorar esse algoritmo para "ue a l/mpada no se*a trocada caso este*a #uncionando,incluindo um teste.
ligue o interruptor0se o interruptor no acender, ento!pegue uma escada0posicione-a embai$o da l/mpada0bus"ue uma l/mpada noa0suba na escada0retire a l/mpada elha0colo"ue a l/mpada noa0
Ainda pode ocorrer de a noa l/mpada tambm no #uncionar, podemos alterar o algoritmo para"ue as l/mpadas continuem sendo trocadas at "ue alguma #uncione.
ligue o interruptor0se o interruptor no acender, ento!pegue uma escada0posicione-a embai$o da l/mpada0bus"ue uma l/mpada noa0suba na escada0retire a l/mpada elha0colo"ue a l/mpada noa0en"uanto a l/mpada no acender, #aa!retire a l/mpada0colo"ue outra l/mpada0
Exerccios propostos 1
2 3m homem "uer atraessar um rio com um barco "ue pode carregar ele mesmo e apenas maisuma de suas tr)s cargas! um lobo, um carneiro e um mao de al#a#a. & "ue o homem dee #a'erpara atraessar o rio sem perder nenhuma de suas cargas4
5 6uponha "ue oc) possua um rob7 e "ueira #a')-lo trocar uma l/mpada e depois con#erir se amesma acende, sendo "ue o mesmo #oi programado para obedecer os seguintes comandos!
pegue 8ob*eto9
-
5/28/2018 Introducao a Logica de Programacao
3/28
largue 8ob*eto9pressione 8ob*eto9gire garras 2:; graus no sentido horrio para#usargire garras 2:; graus no sentido anti-horriomoa 8ob*eto9 para
-
5/28/2018 Introducao a Logica de Programacao
4/28
Smolo Signi!icado
erminal D Endica incio ou #im do #lu$o
&perao de entrada e sada. Fenrica, semindicar dispositio.
Procedimentos. Gomandos simples.
&perao de sada. Hdeo, impressora, etc.
eciso. Endica "ue uma ou mais comparaessero #eitas com a possibilidade de desio paraoutras partes do programa.
Gonectores.
6entido do #lu$o.
%$emplo!
Encio
Ier notas+2 e +5
1ed J +2K+5
-
5/28/2018 Introducao a Logica de Programacao
5/28
+o 6im 6e 1ed 9J L.;
%screa reproado %screa aproado
Bim
Exerccios propostos 2
2 %labore um #lu$ograma para ler duas notas, calcular a mdia semestral e in#ormar ao aluno se ele
est reproado, em e$ame ou aproado. Gonsiderar a mdia para aproao direta igual ou superiora L,;. Para #icar de recuperao e$ame, o aluno ter "ue ter mdia semestral mnima no in#eriora 2,ML.
5 %labore um noo #lu$ograma a partir do desenolido para a "uesto anterior, in#ormando se oaluno est aproado ou no aps o e$ame. & aluno deer ter mdia semestral no in#erior a N,;obedecendo ao seguinte clculo! mdia semestral aps e$ame J media semestral antes do e$ame$ M K nota do e$ame $ O
-
5/28/2018 Introducao a Logica de Programacao
6/28
outro programa compilador "ue trans#orme a linguagem usada no cdigo do programa para alinguagem "ue o computador entenda. Por isso importante "ue #aamos um bom e$erccio mentalcolocando o crebro para e$ecutar algoritmos. Ba'endo assim, aprenderemos a lgica de programaoe conse"uentemente aprenderemos a programar.
1.-. *oment%rios
Gomentrios so anotaes escritas nas pro$imidades das linhas de cdigo de um algoritmo ouprograma, e so usados para e$plicar melhor alguma parte do cdigo para eitar con#uses deentendimento na hora de sua anlise. Para podermos identi#icar um comentrio no cdigo do programaou algoritmo usaremos o smbolo
-
5/28/2018 Introducao a Logica de Programacao
7/28
dee ser colocado entre aspas simples VAW. %$emplos! a ?oi mundoX@ b ?no pise nagrama@ c V2W d VaW e V V
1./.3. eclarao de 0ari%$eis
m programa, em muitas ve!es, precisa utili!ar variveis e constantes. ma constante
ser definida no ca"eal#o do programa e, normalmente, no mudar seu valor duranteo processamento$e%ecuo do programa. &s variveis podem ter o seu valor alteradodurante a e%ecuo do programa. &s constantes, para o caso dos algoritmos que vamosconstruir sero definidas com letras mai'sculas. &s variveis tero que ser declaradaslogo no incio de cada programa.
&s variveis devem ser declaradas antes de serem usadase no local adequado para seufuncionamento. ma declarao especifica um tipo, e pode ser seguida por uma ou maisvariveis daquele tipo, separadas por virgulas. fim da declarao indicada por pontoe vrgula.
6inta$e!tipo lista_de_nomes;
E%emplos*inteiro dia, m+scaracter se%o, escol#acaracter nome-/0, dia1semana-2/0real nota2, nota3, media
&o declarar variveis do tipo caracter com mais de um caracter, ou outro tipo com oo"jetivo de guardar mais de um valor, deve4se definir o seu taman#o entre colc#etes,logo ap5s o nome da varivel, como no e%emplo acima. &"ai%o mostra4se um pequenoprograma e%emplo.
MAX = 80
NOME = Maria
!rograma principal
In"cio
Inteiro idade# ano# me$# dia%
&eal media# notoa1# nota'%
(aracter $e)o%
(aracter nome*80+%
media = ,nota1 - nota'/'%
im
6o pequeno programa acima, nota4se queMAXe NOMEso constantes. &s variveisdeclaradas so* idade, ano, me$ e diacomo inteiro media, nota1, nota'como real$e)ocomo caracter de uma letra e nomecomo caracter de oitenta (/) letras. "servema posio em que cada uma escrita no programa. &s constantes so definidas antes doincio do programa principal. &s variveis so declaradas logo ap5s o incio doprograma principal.
-
5/28/2018 Introducao a Logica de Programacao
8/28
Exerccios propostos
2 etermine "ual o tipo primitio de in#ormao presente nas sentenas abai$o!
a A placa ?PareX@ tinha dois #uros de bala. b Yose#ina subiu N degraus para pegar uma ma boa.
c Alberta leou = horas e meia para chegar ao hospital onde concebeu uma garota. d Belisberto recebeu sua 2:Z medalha por ter alcanado a marca de NL,= segundos nos 2;; metros rasos. e melhor seguir pela ?Cua@ VAW .
5a Assinale os identi#icadores de tipos lidos!a V[Wb 35c AhXd ?aluno@e NN
# \m
-
5/28/2018 Introducao a Logica de Programacao
9/28
M e#ina uma constante e declare uma ariel para receber o alor da diiso da constante PE=.2O2N2M por 2;.
L %$pli"ue os termos! a Algoritmos b Gdigo c Programa d Hariel e Gonstante
# Gomentrios g 1emria h %$ecuo i Gompilao * ipos
1.5. ,strutura do algoritmo&s algoritmos sero estruturados da seguinte maneira!
definio de constantes
/*Definio das funes para tarefas especficas*/Nome_funo_1(lista de declaraes){
declaraes de variveis; comandos;
.
.
. retorno(valor);}
.
.
.
Nome_funo_n(lista de declaraes)
{ declaraes de variveis; comandos;
.
.
. retorno(valor);}
Programa rincial( ){
declarao de variveis;comandos! inclusive as c"amadas ara funes! etc;
}
&nde o abrir chaes e o #echar chaes delimitam respectiamente onde o algoritmo comea e ondeeste termina. +as declaraes sero de#inidos os nomes e os tipos das arieis usadas, no algoritmo. corpo do programa conter todas as instru7es que devero ser e%ecutadas. n'mero dem5dulos (fun7es) do programa depender do programador. 8 recomendvel para a
-
5/28/2018 Introducao a Logica de Programacao
10/28
porta"ilidade, clare!a de c5digo e manuteno do algoritmo que os programas sejam feitos emmdulose com endenta!o.
1.6. 7peradores aritm#ticos&s operadores so um con*unto de smbolos "ue indicam uma determinada operao a ser #eita
pelo programa.
7perador Signi!icado
K Adio- 6ubtraoR 1ultiplicao< iiso
Cesto de diiso inteira
1.18. 7peradores relacionais3tili'amos os operadores relacionais para reali'ar comparaes entre dois alores de mesmo
tipo. ais alores so representados por constantes, arieis ou e$presses aritmticas. &soperadores relacionais so!
7perador Signi!icado
J J Egual aXJ, 89, i#erente de
9 1aior "ue9J, maior ou igual a
8 1enor "ue8J, menor ou igual
& resultado obtido sempre um alor lgico.
%$emplo!
5 R O J J 5O < = erdadeiro: J J : erdadeiro
1.11. 7peradores lgicos
3tili'aremos tr)s operadores bsicos para a #ormao de e$presses lgicas.&s operadores lgicos so!
7perador Signi!icado
.%., ff &perador lgico e
.&3., &perador lgico ouX +egao
1.12. 4egras de preced&nciaAlgumas e'es a ordem em "ue so reali'adas as operaes podem alterar o resultado de uma
e$presso, essa ordem de#inida pelas regras de preced)ncia. A tabela a bai$o lista em ordemdecrescente a preced)ncia dos operadores. %ssa ordem pode ser mudada com o uso dos par)nteses,sendo e$ecutadas primeiro as operaes dentro dos par)nteses mais internos.
&perador Signi!icadoX - +egao e negatio
-
5/28/2018 Introducao a Logica de Programacao
11/28
R < 1ultiplicao, diiso e resto da diiso inteiraK - Adio e subtrao
8 9 1aior "ue, maior ou igual a, menor "ue e menor ou igual aJ J Egual e di#erente
.%. &perador lgico e.&3. &perador lgico ou
J Atribuio
Exerccio proposto
etermine os resultados obtidos na aaliao das e$presses lgicas seguintes, sabendo "ue A, ^, G, e % cont)m respectiamente 5, L, =.N, ?noite@ e ?#rio@!a ^ J J A R Gb ?dia@ J J .&3. ?#rio@ ?clima@c ^ < A G .&3. A Gd = < L R 5 J J 2O < A .&3. ^ D = G K ;,Ne ^ K -5 J J 5 R G R 5 < 2;
1.13. Atriuio
Para atribuir um alor a uma ariel, o tipo do alor #ornecido dee ser compatel com o tipo daariel. Esso #eito da seguinte #orma! varivel = expresso;
%$emplo!inteiro $0
-
5/28/2018 Introducao a Logica de Programacao
12/28
1.1".2. Sada de dados3m algoritmo no teria serentia alguma se no pudesse nos deoler algum resultado. Baremos
os algoritmos retornarem seus resultados atras do comando escrea.
6inta$e!escreva(parmetro_! parmetro_"! ###! parmetro_n$;
&s par/metros podem ser arieis, constantes ou e$presses "ue sero impressas na tela, naordem em "ue aparecem na #uno.%$emplo!
-
5/28/2018 Introducao a Logica de Programacao
13/28
L Galcular e e$ibir a mdia aritmtica de "uatro alores "uais"uer "ue sero digitados.
: Galcular e e$ibir a tenso de um determinado circuito eletr7nico a partir dos alores da resist)ncia ecorrente eltrica "ue sero digitados. 3tili'e a lei de &hm.
U %ntrar ia teclado com o alor de uma temperatura em graus Gelsius, calcular e e$ibir suatemperatura e"uialente em Bahrenheit.
2; %ntrar ia teclado com o alor da cotao do dlar e uma certa "uantidade de dlares. Galcular ee$ibir o alor correspondente em Ceais C.
22 %ntrar ia teclado com o alor de cinco produtos. Aps as entradas, digitar um alor re#erente aopagamento da somatria destes alores. Galcular e e$ibir o troco "ue deer ser deolido.
1.1-. ,struturas de controleAtras das estruturas bsicas de controle do #lu$o de e$ecuo D se"(encial, seleo, repetio D
e da combinao delas, poderemos criar um algoritmo para solucionar rios problemas.
1.1. ,strutura se9:encialAes "ue sero e$ecutadas na ordem em "ue #oram escritas, de cima para bai$o e da es"uerda
para a direita. & ponto-e-rgula 0 delimita o #im de um comando.
1.1/. ,struturas de seleo
1.1/.1. Seleo simples
3ma estrutura de seleo permite a escolha de um bloco de comandos a ser e$ecutado "uandodeterminadas condies, representadas por e$presses lgicas, so ou no satis#eitas.
6inta$e!
se(condio){
comando_; comando_"; comando_n;
;
&nde condio uma e$presso lgica. &s comandos s sero e$ecutados se a condio resultarerdadeira. As chaes permitem a e$ecuo de todos os comando dentro da estrutura de seleo. 6ehouer apenas um comando no necessrio as chaes, e a seleo termina no primeiro ponto ergula.
1.1/.2. Seleo composta
3m segundo bloco de comandos adicionado, estes sero e$ecutados somente se a condiotestada #or #alsa, isto se #a' usando a palara reserada seno. 6e a condio resultar erdadeira,somente os comandos dentro da seleo se sero e$ecutados, os comandosdentro doseno no soe$ecutados, passando-se a aaliar a linha logo abai$o do Tltimo comando seno.
-
5/28/2018 Introducao a Logica de Programacao
14/28
6inta$e!
se (condio){
comando_; comando_";
comando_n;}
seno
{
comando_; comando_";
comando_n;}
%$emplo2!
-
5/28/2018 Introducao a Logica de Programacao
15/28
escrea ?1diaJ ?, media0 ``
1.1/.3. Seleo Anin)ada
%struturas de seleo podem ser aninhadas, ou se*a, podemos incluir uma estrutura de seleodentro de outra. Esso pode ser #eito "uantas e'es #or necessrio. Para melhor compreenso obsere asinta$e abai$o.6inta$e!se (condio){
comando_; comando_";
comando_n;}
seno
{
se (condio){
comando_; comando_";
comando_n; % seno
& se (condio$
& comando_;
comando_";comando_n;
%seno##%
%%
%$emplo
-
5/28/2018 Introducao a Logica de Programacao
16/28
` seno _
se num J J ; _ escrea?+Tmero igual a 'ero.@0 escreanum0 ` seno _ escrea ?+umero maior "ue 'ero.@0 escrea num0 `
-
5/28/2018 Introducao a Logica de Programacao
17/28
comandoSn0;
%$emplo!Programa principal _ real preo0 inteiro origem0 leiapreo, origem0 c)a$eorigem _ caso 1 escreapreco, ? D produto do sul@0
pareD
caso 2 escreapreco, ? D produto do norte@0
pareD caso 3
escreapreco, ? D produto do leste@0pareD
caso " escreapreco, ? D produto do oeste@0
pareD caso - escreapreco, ? D produto do sudeste@0 caso escreapreco, ? D produto do centro-oeste@0 caso / escreapreco, ? D produto do nordeste@0 caso contr%rio escreapreco, ? D produto importado@0
;
-
5/28/2018 Introducao a Logica de Programacao
18/28
lados iguais. Para e$istir tri/ngulo necessrio "ue a soma de dois lados "uais"uer se*a maior "ueo outro, isto, para os tr)s lados.
L Ba'er um algoritmo para eri#icar se tr)s alores "uais"uer a, b, c "ue sero digitados #ormam ouno um tri/ngulo ret/ngulo.
: %screa um algoritmo para determinar se um nTmero lido do teclado maior, menor, ou igual a 'ero.
U 3sando a estrutura se
-
5/28/2018 Introducao a Logica de Programacao
19/28
C
escre$a ?%ntre com o nome do aluno@0leianome0
escre$a?%ntre com suas O notas bimestrais@0 leian2, n5, n=, nO0 ma J n2 K n5 K n= K nO < O0 escre$a?+ome! ?, nome, ?1dia anual! @, ma0 se ma 9J L
escrea?aluno aproado@0 seno escrea?aluno reproado@0 cont J cont K 20
-
5/28/2018 Introducao a Logica de Programacao
20/28
mat J acm < N;0
-
5/28/2018 Introducao a Logica de Programacao
21/28
= Ba'er um algoritmo para criar uma rotina de entrada "ue aceite somente um alor positio.
O Ba'er um algoritmo para entrar ia teclado com o se$o de determinado usurio, aceitar somente ?B@ou ?1@ como respostas lidas.
N Ba'er um algoritmo para e$ibir a tabuada do nTmero cinco no interalo de um a de'.
M Ba'er um algoritmo para e$ibir a soma dos nTmeros inteiros positios do interalo de um a cem.
L Ba'er um algoritmo para e$ibir os trinta primeiros alores da se"uencia de Bibonacci! 2, 2, 5, =, N, :,2=, ...
: Ba'er um algoritmo para entrar ia teclado com um alor "ual"uer. raar a digitao, no sentido deaceitar somente alores positios. Aps a digitao, e$ibir a tabuada do alor solicitado, no interalo
de um a de'.
U Ba'er um algoritmo para entrar ia teclado com um alor [ "ual"uer. raar a digitao, no sentidode aceitar somente alores positios. 6olicitar um interalo A D ^ para "ue o programa possacalcular a tabuada do alor digitado, sendo "ue o segundo alor ^, deer ser maior "ue o primeiroA, caso contrrio, digitar noamente somente o segundo. Aps a alidao dos dados, e$ibir atabuada do alor digitado, no interalo decrescente, ou se*a, a tabuada de [ no interalo de ^ para
A.
2; Ba'er um algoritmo para calcular o #atorial de um alor "ue ser digitado. %ste alor no poder sernegatio. %niar mensagem de erro e solicitar o alor noamente, se necessrio. Perguntar se o
usurio dese*a ou no #a'er um noo clculo, consistir a resposta em ?6@ ou ?+@.
22 Ba'er um algoritmo para entrar ia teclado com ?+@ alores "uais"uer. & alor ?+@ "ue representa a"uantidade de nTmeros ser digitado, deer ser positio, mas menor "ue inte. Gaso a "uantidadeno satis#aa a restrio, eniar mensagem de erro e solicitar o alor noamente. Aps a digitaodos ?+@ alores, e$ibir!
a maior alor0b menor alor0c A soma dos alores0d A mdia aritmtica dos alores0e A porcentagem de alores "ue so positios0# A porcentagem de alores negatios0
25 Ba'er um algoritmo para aps e$ibir os dados, perguntar ao usurio se dese*a ou no uma noae$ecuo do programa. Gonsistir a resposta no sentido de aceitar somente ?6@ ou ?+@ e encerrar oprograma em #uno dessa resposta.
2= & *ogo da mega-sena consiste em acertar seis dos sessenta nTmeros disponeis em um olante.Ba'er um programa para calcular a "uantidade de *ogos "ue temos "ue #a'er, para com certe'aacertar o resultado da mega-sena. Admitindo "ue #aremos *ogos de seis nTmeros por olante, o
-
5/28/2018 Introducao a Logica de Programacao
22/28
programa deer e$ibir "uais seriam estes nTmeros em cada olante, ou se*a, e$ibir todos osresultados posseis.
1.16. 0etores
At a"ui, apresentamos uma #orma simples para reserar espao de memria no computador, ouse*a! atras do arti#cio da declarao de arieis simples.
%$emplo de uso simples da memria
Gonsidere o cdigo de declarao abai$o!inteiro num0real media0
1%1CEA
Gon#orme se pode obserar na #igura acima, a memria diidida em clulas. Gonsideramos "uecada clula constituda de : oito bits de capacidade e pode arma'enar um Tnico caracter.
Ao declarar a ariel num como inteiro, a m"uina reserar uma "uantidade dessas clulas paraarma'enar um alor numrico inteiro. Gomo os inteiros so menores "ue os alores reais, o espao dememria reserado para este tipo inteiro tambm menor "ue o espao reserado para o tipo real.+ormalmente nas m"uinas, para um tipo real arma'enado o dobro do espao do tipo inteiro.
esta #orma, se para um inteiro a ar"uitetura da m"uina dispor de 5 clulas e cada clula #orconstituda por : bits, o inteiro ter capacidade para 2M bits en"uanto um alor real ter =5 bits decapacidade.
%ntretanto, a declarao de arieis simples no garante "ue possamos guardar na memria mais"ue um alor ao mesmo tempo. Por e$emplo, no problema de clculo de mdia aritmtica de duas notasde uma turma de alunos, se declararmos uma ariel simples de#inida como media, esta arielsomente poder guardar na memria um alor por e', sendo este alor substitudo pelo pr$imo eassim por diante.
num
media
-
5/28/2018 Introducao a Logica de Programacao
23/28
6e dese*armos arma'enar rios alores reais do mesmo nome ao mesmo tempo, como no casode rias mdias de alunos, pode-se determinar "ue a m"uina computador resere espao dememria re#erenciada pelo nome mdia mas com rios campos do tamanho de um alor do tipo real,colocando um colchetes aps a de#inio do nome da ariel e o tamanho "ue se dese*a reserardentro dos colchetes, con#orme mostrado abai$o na declarao da ariel mdia com tamanho para Ncinco mdias de alunos e no mais apenas uma mdia como apresentado anteriormente.
real mediajNk01%1CEA
esta #orma, pode-se dedu'ir, "ue para arma'enar rios alores correspondentes a mesmaariel pode-se utili'ar etores para alocao de memria. %ntretanto, "uando tentarmos arma'enarespao em memria para rios nomes, bom lembrar "ue um Tnico nome * ocupa uma cadeia declulas na memria. eido a isso, para arma'enar espao para rios nomes #icarem arma'enados namemria ao mesmo tempo, necessrio #a'ermos o uso de um etor de duas dimenses! umadimenso para os caracteres do nome e uma outra para indicar cada nome. Assim, nas colunas #icamarma'enados os caracteres de cada nome e em cada linha reserado o espao para a posioendereo de cada nome. He*a a declarao no cdigo a seguir e o es"uema abai$o.
caracter nomejNkj2;k01%1CEA
Gomo pode-se obserar, no es"uema acima est a representao da memria com espao paracinco nomes de no m$imo 2; caracteres cada um.
%$emplo2Ba'er um algoritmo para ler um etor real de 2; elementos e imprimir os alores maiores ou iguais a
'ero.
-
5/28/2018 Introducao a Logica de Programacao
24/28
` para E J ;0 E 82;0 E J E K2 _ %screa ?etj?, E , ?kJ ?0 se et j E k 9 J ;
_ %screa et j E k 0 ` `Bim
+o e$emplo acima pode-se escreer o alor de cada elemento do etor depois de todos oselementos lidos. Glaro, isso #eito somente para comproar "ue os alores #icam todos arma'enadosna memria, seno, para escreer cada alor do etor poderia ser implementado o comando ?se@ e ocomando ?escrea@ no primeiro lao de repetio logo abai$o da leitura dos alores.
1.28. EatriFes
3ma matri' nada mais "ue um etor bidimensional. +o e$emplo dado acima, com a ariel
nome, na realidade, usamos uma matri' para guardar N cinco nomes. esta #orma, podemos tambmreserar espao em memria para uma matri' numrica, se*a ela do tipo real ou inteira. & cdigo aseguir e o es"uema de memria abai$o a*udam a compreender o "ue acontece.
inteiro AjOkjNk0
-
5/28/2018 Introducao a Logica de Programacao
25/28
%screa?^j?, E, ?k j?, Y, ?kJ @0 Ieia ^ jEkjYk0
GjEkjYkJ ^jEkjYk K AjEkjYk0
%screa?Gj?, E, ?k j?, Y, ?kJ @, GjEkjYk0 ` `#im
Exerccios propostos
2 ado o etor H%, de#inido por!inteiro H%j2;;k0a preench)-lo com o alor =;0b preench)-lo com os nTmeros inteiros 2, 5, =..., 2;;0c preencher H%jEk com 2, se E "uadrado per#eito, e com ;, nos demais casos.
5 ado o seguinte etor!"ual ser a sua con#igurao depois de e$ecutados os comandos!
para E J L0 E9JO0 EJE-2_ au$JH%jEk0 H%jEk J H%jLD E K2k0 H%jL D E K 2k J au$0`H%j5kJH%j;k0H%jH%j5kk J H%jH%j2kk0
= %screa um algoritmo em portugol, para um programa "ue!
a leia um con*unto A de 2;; elementos reais0b construa e imprima um outro con*unto #ormado da seguinte maneira!i os elementos de ordem par so os correspondentes de A diididos por 50ii os elementos de ordem mpar so os correspondentes de A multiplicados por =.
O ado o seguinte etor de caracteres!
Qual ser a sua con#igurao aps serem e$ecutados os comandos a seguir 4
au$ J H%jNk0H%jNkJH%j:k0
H%j:kJau$0para EJ;0 E8J=0 EJEK2_ au$ J H%jEk0 H%jEkJH%j: D Ek0 H%j: D Ek J au$0`H%jNk J H%j2k0
N %screa um algoritmo em portugol "ue!
=5O25N:=H%
H% C[6%&^AX
-
5/28/2018 Introducao a Logica de Programacao
26/28
a Ieia um con*unto A de 5; elementos do teclado0b calcule e imprima o alor de 6, onde!6 J A2 D A5;5 K A5 D A2U5 K ......K A2; D A225 2;
ou se*a, 6 J Ai D A52-i5 i J 2
M Ba'er um algoritmo para ordenar um etor de nTmeros em ordem crescente. & etor ordenadodeer ser impresso na tela.
L %screa um algoritmo "ue leia dois etores de 2; posies e #aa a multiplicao dos elementos demesmo ndice, colocando o resultado em um terceiro etor. 1ostre o etor resultante.
: %screa um algoritmo "ue leia um etor de 5; posies e mostre-o. %m seguida, tro"ue o primeiroelemento com o Tltimo, o segundo com o penTltimo, o terceiro com o antepenTltimo, e assimsucessiamente. 1ostre o noo etor depois da troca.
U %screa um algoritmo "ue leia um etor de :; elementos inteiros. %ncontre e mostre o menorelemento e sua posio no etor.
2; %screer um algoritmo "ue l) 5 etores [2; e ]2; e os escree. Grie, a seguir, um etor "uese*a
a a unio de [ com ]0b a di#erena entre [ e ]0c a soma entre [ e ]0d o produto entre [ e ]0e a interseco entre [ e ].%screa o etor a cada clculo.
22 Baa um algoritmo "ue leia um etor de N;; posies de nTmeros inteiros e diida todos os seuselementos pelo maior alor do etor. 1ostre o etor aps os clculos.
25 3ma locadora de deos tem guardada, em um etor de N;; posies, a "uantidade de #ilmesretirados por seus clientes durante o ano de 2UU=. Agora, esta locadora est #a'endo uma promoo
e, para cada 2; #ilmes retirados, o cliente tem direito a uma locao grtis. Baa um algoritmo "uecrie um outro etor contendo a "uantidade de locaes gratuitas a "ue cada cliente tem direito.
2= %screer um algoritmo para a gerao da seguinte matri'!
2O ada a matri' 1A abai$o!
Qual ser a con#igurao de 1A depois de e$ecutado o algoritmo4incio inteiro E, Y0 caracter au$0
2 2 2 2 2 22 5 5 5 5 22 5 = = 5 22 5 = = 5 22 5 5 5 5 22 2 2 2 2 2
a b cd e #g h i
-
5/28/2018 Introducao a Logica de Programacao
27/28
2 5 2= 2 O
2 =5 22 O
caracter 1A jOkjOk0 para EJ;0 E8J=0 EJEK2 _
para YJEK20 Y8J=0 YJYK2 _ au$ J 1AjEkjYk0 1AjEkjYkJ1AjYkjEk0 1AjYkjEkJau$0 ` ` au$J1Aj2kj2k0 1Aj2kj2kJ1AjOkjOk0 au$J1Aj5kj5k0 1Aj5kj5kJ1Aj=kj=k0 1Aj=kj=kJau$0#im
2N escrea o "ue ser produ'ido depois de e$ecutados os comandos abai$o se!
A J
GJ
para EJ;0 E850 EJEK2_ para YJ;0 Y850 YJYK2 _ para \J;0 \8J50 \J\K2 _ escreaAjEkj\k K Gj\kj*k0
` ``
2M Ba'er um algoritmo para multiplicar duas matri'es de mesma ordem. A matri' produto deer serimpressa na tela.
2L %screa um algoritmo "ue l) uma matri' 1N$N e calcula as somas!a da linha O de 1b da coluna 5 de 1c da diagonal principald da diagonal secundriae de todos os elementos da matri' 1%screer essas somas e a matri'.
2: %screer um algoritmo "ue l) uma matri' 12;$2; e a escree. ro"ue, a seguir!a a linha 5 com a linha :b a coluna O com a coluna 2;c a diagonal principal com a diagonal secundriad a linha N com a coluna 2;.%screa a matri' assim modi#icada.
2U %screer um algoritmo "ue l) uma matri' 1N$N e cria 5 etores 6IN e 6GN "ue contenham,respectiamente, as somas das linhas e das colunas de 1. %screer a matri' e os etores criados.
-
5/28/2018 Introducao a Logica de Programacao
28/28
i/liogra6ia
?Igica de programao@ de Borbellone e %berspcher
?Algoritmos e %struturas de ados@ de Fuimares