PDA

Ver Versão Completa : [Lógica] Exercícios para brincar!!



CCV_HEALbra
21-11-2007, 10:32 AM
bom...nunca vi alguem usando um livro de lógica q nao seja o do Harry Farrer (algoritmos estruturados)....

ele ajuda um pouco..lógica ajuda um pouco..sempre é bom começar com lógica..

http://www.ime.uerj.br/~rojas/ipd/ExerciciosIPD-1.pdf

tenho o livro..mas peguei esse exercício online e vou tacar aqui...ai seria bom td mundo que soubesse um pouco resolvesse os exercícios e ir colocando aqui para a galera aprender!!

até a galera que tá aprendendo é bom resolver e colocar aqui pra gente ajudar!
vou resolver alguns e colocar aqui tb!!

abraço!!

CCV_Pinto
21-11-2007, 11:03 PM
bom.. primeiro acho legal dar uma pequena explicação minha do q eu considero um algoritmo...

algoritmo pra mim é como uma sequencia de procedimentos a se fazer para conseguir descrever o processo de "obter alguma coisa"

por exemplo.. como seria um algoritmo q usando apenas lógica matemática sabe se um numero é par?

é uma coisa simples, mas acho q pra quem tá començando é ótimo começar com essas coisas triviais:

faça a divisão inteira do número por 2
se o resto for zero -> ele é par
se não -> ele é impar

obs.: divisão inteira significa não colocar virgula.. meio assim (barra é o sinal de divisão em programação.. e asterisco é sinal de multiplicação):

15/2 = 7 e o resto é 1

dando uma palinha de linguagem C vc tem o q chamamos de variáveis.. são iguais às variaveis de matemática:

int x; // um inteiro q chamamos de x
x = 2; // o sinal de igual nas linguagens de programação tem a semantica de "recebe o valor, atribui"

no caso.. x recebeu o valor 2

agora olha só isso:

int x = 15;
int y = 2;

int z = x/y;

como estamos fazendo uma divisão de operandos inteiros o valor de z será 7, e não 7.5 como era de se esperar! além do mais a variavel z nunca poderia valer 7 por ela ser do tipo int (inteiro)

e ainda se fizessemos

int resto = 15%2;

a variável resto receberia o valor 1! pois o sinal de porcentagem serve para dar o resto da divisão inteira...
agora vamos num um pouco mais dificil

dado um número como saber se ele é primo?

a gente pensa meio assim: se ele for par não pode ser primo.. dae tenta dividir por três.. por 5 até chegar no próprio número.. se não dividir por nenhum então ele é primo...

em termos de algoritmo escrito em portugues estruturado seria assim:

divide o número por 2
se a divisão inteira tiver resto zero não é primo
incrementa o divisor e divide novamente
se tiver resto zero não é primo
se vc for incrementando o divisor e chegar no número então é primo (pois se tivesse tido resto zero em algum momento a gente teria parado de incrementar o divisor)

escrevi de uma forma um pouco diferente da convencional mas soh pra explicar pra galera q tah començando...



Fazer um algoritmo que:
- Leia um número indeterminado de linhas contendo cada uma a idade de um indivíduo.
A última linha que não entrará nos cálculos, contém o valor da idade igual a zero.
- Calcule e escreva a idade média deste grupo de indivíduos.


bom... vou fazer o jeito q considero obvio:

teremos duas variaveis
int soma;
int qtde;

a cada linha soma = soma + idade; e qtde = qtde + 1;
qdo idade == 0 (se um sinal de igual é pra atribuir valor... o tal do "receber" q eu falei ali em cima... então para comparar se dois números são iguais usam-se dois sinais de igual)
qdo idade == 0 -> divide soma por qtde

ou seja.. somamos todas as linhas e dividimos pelo total no fim... só tem como descobrirmos o total qdo chega na última linha.. e sabemos q chegamos na última linha qdo idade for 0 :D

na verdade qdo escreve-se algoritmos utiliza-se o formato de portugues estruturado.. mas como acho q a galera tah a fim de ir entendendo linguagens eu já dei uns pitacos de linguagem C... q eh mais facil de começar por ser estruturada.. ou seja.. coisas bem computacionais.. sem abstração :D

abraços

CCV_HEALbra
28-11-2007, 06:54 PM
bom...só lembrando piu piu..q vc deve usar algum laço de repetição também..que no caso vai servir pra sair...pode ser o enquanto..while(i!=0)..
pra falar q enquanto o i for diferente de 0 ele pratica a ação de pegar a nota....

engraçado..q acabei de abrir o link e essa pagina atualizou com sua resposta..ahuauauh

^^

vou fazer ele em C...usando o compilador dev-c++...pq o c, pascal...td eh praticametne um "algoritmo" em ingles...como o próprio pinto falou!


Tem-se um conjunto de dados contendo a altura e o sexo (masculino, feminino) de 50
pessoas. Fazer um algoritmo que calcule e escreva:
- a maior e a menor altura do grupo;
- a média de altura das mulheres;
- o número de homens;

bom...eu nao testei pq o dev cpp eh uma bosta..ele trava por qualquer coisinha...ai ele trava pq eu uso float e na entrada de dados uso %f..:S

ahuuha

mas tá ai:


bom..eu comentei td..nao sei se está certo..se tiver um errinho me fala q eu corrigo na boa!!
^^

eu coloquei em C pq acho q fica até mais fácil,...como o pinto disse...pra assimilar a programação com a lógica!!

bom divertimento!!
^^

CCV_Soad
12-01-2008, 06:05 PM
exercício legal pena que meu pc foi pro lixo e no trabalho não dá tempo de ficar estudando
mais ainda não desisti de aprender a programar
assim que meu pc chegar vou começar com força maxima
abraços
sim só um pedido ao pinto ou qualquer admin, sei que aqui não é o lugar adequado para fazer esse tipo de pedido mais como não vejo o pinto no msn nenhum outro admin
pesso para me porem no grupo CCV dinovo pois estou de volta a divisão dota
abraços !!!