Baixe o app para aproveitar ainda mais
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
Compartilhar