Buscar

Listas de Exercícios Prof. Marcelo UFMA

Prévia do material em texto

Fundamentos da Computac¸a˜o: Lista 1
Preparac¸a˜o para Prova 1, marcada para 8 de Maio de 2014
Prof. Marcelo - BCT
1
Fundamentos da Computac¸a˜o (Prof. Marcelo - BCT ): Lista 1
Ex. 1 Algoritmos
(a) defina-os conceitualmente;
(b) cite exemplos e contra-exemplos, justificando e detalhando sua escolha;
(c) por que precisamos de algoritmos?;
Ex. 2 Computadores
(a) em linha gerais, descreva o funcionamento de um computador, de acordo
com o modelo de von Neumann ;
(b) o que um computador necessita para executar algoritmos eficientemente?
justifique sua resposta;
(c) em quais casos os computadores na˜o oferecem soluc¸o˜es eficientes ou via´veis?;
Ex. 3 Sistemas Nume´ricos
(a) por que os computadores contemporaneos sa˜o conhecidos como computadores
digitais?;
(b) qual a vantagem de se utilizar a notac¸a˜o posicional nume´rica?;
(c) por que os computadores contemporaneos utilizam o sistem bina´rio de rep-
resentac¸a˜o de informac¸o˜es e na˜o qualquer outro?;
(d) conversa˜o entre bases nume´ricas (sem sinal);
1. conte em bina´rio de 02 ate´ 111112, escrevendo o nu´mero decimal equivalente ao lado
2. converta os seguintes nu´meros decimais em sua representac¸a˜o bina´ria
• 1010
• 20110
• 10000210
• 100510
• 510
• 1310
3. converta os seguintes nu´meros bina´rios em sua representac¸a˜o decimal
• 112
• 1012
• 1000012
• 111012
• 10012
• 11012
4. utilizando o polinoˆmio cn−1basen−1+ · · ·+cibasei+ · · ·+c1base1+c0base0, onde base representa
a base nume´rica, enquanto ci representa o ie´zimo dos n d´ıgitos do nu´mero representado
na referida base, explique porque o me´todo, de divisa˜o por base repetidas vezes, funciona
na conversa˜o entre bases. Illustre sua explicac¸a˜o utilizando as converso˜es 1010 → 10102 e
1012 → 510.
Ex. 3 Sistemas Nume´ricos continua na pro´xima pa´gina. . . Pa´gina 2 de 5
Fundamentos da Computac¸a˜o (Prof. Marcelo - BCT ): Lista 1 (continuac¸a˜o)
(e) representac¸a˜o de inteiros negativos;
1. explique como inteiros negativos sa˜o representados em base bina´ria usando o me´todo de
complemento de 2, justificando suas vantagens e o porqueˆ de seu funcionamento
2. converta para bina´rio (limitado a 4 bits) os seguintes inteiros usando complemento de 2
• 010
• −110
• −210
• −310
• −410
• −510
• −610
• −710
(f) aritme´tica bina´ria;
1. realize adic¸o˜es em base bina´ria, conferindo o resultado na base decimal (bits ilimitados)
• 1002 + 112
• 1102 + 1012
• 10012 + 102
• 101002 + 110002
• 111112 + 12
• 1112 + 112
2. realize subtrac¸o˜es em base bina´ria, conferindo o resultado na base decimal (bits ilimitados)
• 1002 − 112
• 1102 − 1012
• 10012 − 102
• 111002 − 110002
• 111112 − 12
• 1112 − 112
3. realize multiplicac¸o˜es em bina´rio, conferindo o resultado na base decimal (bits ilimitados)
• 1002 × 112
• 1102 × 1012
• 10012 × 102
• 111002 × 110002
• 111112 × 12
• 1112 × 112
4. qual a func¸ao do bit de carry e por que devemos nos preocupar com ele? o que e´ overflow?
5. realize adic¸o˜es em base bina´ria, conferindo o resultado na base decimal (limitado a 3 bits)
• 1002 + 0112
• 0102 + 0012
• 1102 + 1012
• 1112 + 112
6. realize subtrac¸o˜es bina´rias, conferindo o resultado na base decimal (limitado a 3 bits)
• 1002 − 0112
• 0102 − 0012
• 1102 − 1012
• 1112 − 112
7. realize multiplicac¸o˜es bina´rias, conferindo o resultado na base decimal (limitado a 3 bits)
• 0102 × 0102
• 0102 × 0112
• 0102 × 1002
• 0112 × 1012
8. justifique quaisquer discrepaˆncias
9. explique o resultado bina´rio da multiplicac¸a˜o de um inteiro por uma poteˆncia de 2
10. explique o resultado bina´rio da divisa˜o de um inteiro por uma poteˆncia de 2
Pa´gina 3 de 5
Fundamentos da Computac¸a˜o (Prof. Marcelo - BCT ): Lista 1Ex. 3 Sistemas Nume´ricos
Ex. 4 Linguagem C
(a) varia´veis;
1. o que sa˜o varia´veis e por que precisam ser declaradas antes de serem utilizadas?
2. liste os tipos de varia´veis do C, descrevendo-os
3. como acessar o conteu´do de uma varia´vel?
4. como acessar o enderec¸o de uma varia´vel?
(b) bibliotecas do C;
1. o que sa˜o as linhas iniciadas com #include e o que representam?
2. para que serve a stdlib.h? e a stdio.h? e a math.h?
(c) a func¸a˜o main() do C;
1. explique o uso e o porqueˆ da func¸a˜o main() do C e por que termina com return 0;
(d) entrada e sa´ıda;
1. explique e exemplifique o funcionamento da func¸a˜o printf()
2. explique e exemplifique o funcionamento da func¸a˜o scanf()
(e) resultado de comparac¸o˜es e operac¸o˜es lo´gicas;
1. descreva os possiveis resultados das operac¸o˜es de comparac¸a˜o ==, >=, <=, <, >, ! = e
das operac¸o˜es lo´gicas && (and), ‖ (or) e ! (not)
2. a partir dos trechos de co´digo abaixo, ca´cule o valor da varia´vel indicada
• int a, b=10, c=9;
a=(b<c);
a?
• int a, b=1, c=0;
a=((c! =b)&&(c>b));
a?
• int a, b=10, c=9;
a=(b==c);
a?
• int a, b=1, c=0;
a=(!((c! =b)‖(c<b)));
a?
3. preencha os valores da tabela verdade abaixo
a b a && b a ‖ b ! a ! b a == b a > b a < b a >= b a <= b a ! = b
0 0
0 1
1 0
1 1
Ex. 4 Linguagem C continua na pro´xima pa´gina. . . Pa´gina 4 de 5
Fundamentos da Computac¸a˜o (Prof. Marcelo - BCT ): Lista 1 (continuac¸a˜o)
(f) estruturas de decisa˜o;
1. explique e exemplifique o funcinamento e uso do comando if
2. explique e exemplifique o funcinamento e uso do comando if . . . else
3. explique e exemplifique o funcinamento e uso do comando if . . . else if . . .
4. explique e exemplifique o funcinamento e uso do comando switch
(g) estruturas de repetic¸a˜o;
1. explique e exemplifique o funcinamento e uso do comando while
2. explique e exemplifique o funcinamento e uso do comando for
Ex. 5 Programac¸a˜o
(a) escreva um programa hello world em C e descreva suas partes;
(b) implemente o algoritmo de Euclides, lendo dois nu´meros do teclado, impri-
mindo seu ma´ximo divisor comum;
(c) fac¸a um programa que leia quatro notas do teclado, representadas em nu´meros
reais, e imprima a me´dia aritme´tica, ale´m de imprimir se o aluno foi aprovado
(me´dia>=7.00) ou reprovado (me´dia<7.00);
(d) fac¸a um programa que leia treˆs notas do teclado, representadas em nu´meros
reais, e imprima somente a maior delas;
(e) fac¸a um jogo de advinhac¸a˜o de nu´meros;
• o usua´rio deve comec¸ar digitando o inteiro n no teclado
• o computador gera um inteiro, o nu´mero secreto, dentro do intervalo [0, n− 1] ([0, n)) aleatoriamente
use int numero secreto=rand()%n;
(olhar a documentac¸a˜o da func¸a˜o rand() e do operador de resto de divisa˜o ou mo´dulo %)
• o usua´rio tera´ k = dlog2ne (k e´ do tipo inteiro) chances para advinhar qual o nu´mero secreto, digitando
suas tentativas no teclado (estudar a estrate´gia de busca bina´ria para entender k)
• se o usua´rio advinhar o nu´mero correto, dentro do limite de k tentativas, o jogo termina com a vito´ria
do usua´rio
• cada vez que o usua´rio faz uma tentativa mal sucedida, o computador devera´ dizer se o nu´mero secreto
e´ maior ou menor que a tentativa atual, e quantas tentativas restam ao usua´rio
• se as tentativas se esgotarem o jogo termina com a derrota do usua´rio
• obs: sinta-se livre para sugerir variac¸o˜es ao jogo e utilize o google quando precisar
(f) pense em outras aplicac¸o˜es que utilizem estruturas de decisa˜o e repetic¸a˜o, e
escreva os respectivos programas;
Pa´gina 5 de 5

Continue navegando