Sie sind auf Seite 1von 4

Introduo Programao

Prova 1 - Prof. Marcus Ramos - 31/08/2010

1. (0,5 ponto) A substituio das vlvulas pelos transistores, e posteriormente desses pelos circuitos
integrados, trouxe quais vantagens para os computadores e os seus usurios?
Essas evolues tecnolgicas tornaram os computadores menores, mais leves, mais econmicos
(com gasto menor de energia), mais confiveis (com ocorrncia de um nmero menor de falhas de
hardware) e mais baratos. Para os usurios, o computador se tornou mais acessvel e parte da vida
cotidiana, contribuindo na realizao de tarefas at ento inditas.
2. (0,5 ponto) Que tipo de linguagens eram usadas para programar os primeiros computadores?
Linguagens numricas, que eram programadas atravs de painis com chaves ou diretamente
atravs da manipulao do hardware, como por exemplo fios, vlvulas e circuitos.
3. (1 ponto) Descreva as principais caractersticas das:
a. Linguagens de programao de alto-nvel;
Elas so mais legveis (por serem mais parecidas com a linguagem natural), mais seguras para se
trabalhar (pois possuem uma grande quantidade de regras que devem ser observadas pelo
programador), permitem uma maior produtividade do programador (que consegue escrever mais
linhas de programa no mesmo intervalo de tempo) e geram programas que podem ser executados
em mltiplas mquinas com maior facilidade.
b. Linguagens de programao de baixo-nvel.
So menos legveis, menos seguras, conferem menor produtividade ao programador e no tem
portabilidade. No entanto, elas conferem um maior poder e flexibilidade ao programador, que tem
mais liberdade para construir o seu programa como quiser, ou quando esse necessita acessar o
hardware diretamente.
4. (1 ponto) Descreva como ocorre a execuo de um programa escrito numa linguagem de
programao de alto-nvel, atravs de:
a. Compilao;
O programa-fonte traduzido pelo compilador para um programa-objeto, o qual ento
executado pelo hardware, produzindo os resultados desejados.
b. Interpretao.
O interpretador l as instrues do programa-fonte e as executa diretamente, sem gerar um
programa-objeto equivalente.
5. (0,5 ponto) Uma vez executado um programa, e obtidos os resultados da sua execuo, pode ser
necessrio refazer uma ou mais das etapas anteriores. Que etapas so essas e como elas se
relacionam umas com as outras?
Essas etapas iniciam com o perfeito entendimento do problema a ser resolvido, prosseguem com
proposio de soluo genrica, do algoritmo elaborado para refletir essa soluo de forma mais
sistemtica possvel, do programa-fonte que reflete o algoritmo e do programa-objeto que

executado pelo hardware diretamente. Em caso de falhas, pode ser necessrio rever e refazer uma
ou mais dessas etapas.
6. (1 ponto) Descreva os elementos que compem o Modelo de von Neumann e descreva como
ocorre a execuo de um programa nesse modelo.
O Modelo de von Neumann composto por (i) dispositivo de entrada, usado para transferir dados
do meio externo para a memria; (ii) dispositivo de sada, usado para transferir dados da memria
para o meio externo; (iii) memria, onde so armazenados os valores que so manipulados pelo
programa e tambm o prprio programa; e (iv) unidade central de processamento, onde so
decodificadas e executadas as instrues do programa e tambm so realizadas todas as operaes
de transformao de valores.
Um programa executado sequencialmente. As instrues so transferidas da memria para a
unidade central de processamento, uma de cada vez. Aps a sua decodificao, as operaes
demandadas por cada instruo so executadas e a prxima instruo lida, e assim por diante at
atingir o final do programa.
7. (1 ponto) Qual a diferena que existe entre um endereo de memria e um valor armazenado na
memria do computador?
Um endereo de memria a identificao numrica de uma posio de memria onde um certo
valor (tambm numrico) pode ser armazenado. Uma mesma posio pode conter um entre uma
coleo pr-determinada de valores possveis, mas em cada instante ela armazena um nico valor
desse conjunto. Se um novo valor gravado, o valor anterior perdido.
8. (0,5 ponto) Por que motivo o uso compartilhado da memria para armazenar simultaneamente
dados e o programa a ser executado facilita a programao de computadores?
Porque isso permite que o computador possa ser facilmente reconfigurado para executar outras
tarefas sem que haja necessidade de mudar o hardware, o que pode ser demorado, complexo e
introduzir falhas operacionais.
9. (0,5 ponto) Descreva as principais diferenas entre o Simple Computer Simulator estudado em sala
de aula e a arquitetura de um computador real.
O simulador estudado um interpretador, portanto o seu desempenho quando comparado com
uma execuo direta pelo hardware bastante inferior. Alm disso, um computador real possui
mais posies de memria e um conjunto maior e mais rico de instrues.
10. (1 ponto) Responda:
a. Quantos bytes existem em 2 megabytes?
2*1.024*1.024 = 21*210*210 = 221 = 2.097.152 bytes
b. Quantos kilobytes existem em 4 gigabytes?
4*1.024*1.024 = 22*210*210 = 222 = 4.194.304 bytes
c. Quantos bits existem em meio megabyte?
0,5*1.024*1.024*8 = 2-1*210*210*23 = 222 = 4.194.304 bits
11. (0,5 ponto) Descreva a estrutura de um programa bsico em C.

#include <stdio.h>
int main () {
// aqui vo as declaraes e os comandos
}
12. (1 ponto) Descreva a sintaxe e a semntica dos comandos da linguagem C:
a. scanf;
Sintaxe: scanf ("<formato>",&<varivel>), onde <formato> pode ser, entre outras opes, %d ou %f, e
<varivel> representa o nome de uma varivel declarada no programa;
Semntica: a execuo do programa suspensa aguardando a digitao de um valor no teclado; quando a
tecla ENTER acionada, o valor digitado convertido para a representao interna e armazenado na
varivel especificada.
b. printf;
Sintaxe: print ("<cadeia>",<expresses>), onde <cadeia> uma cadeia qualquer de caracteres,
eventualmente contendo as subcadeias %d e %f, e <expresses> representa uma srie de expresses
separadas por vrgula; pode-se usar qualquer quantidade de expresses, incluindo nenhuma, caso em que
no se usa a vrgula depois do fecha aspas;
Semntica: os caracteres que forma <cadeia> so enviados para a tela do computador; as seqncias %d e
%f so substitudas pelos valores gerados pelas expresses respectivas (usando correspondncia
posicional).
c. atribuio.
Sintaxe: <varivel> = <expresso>, onde <varivel> representa o nome de uma varivel declarada no
programa e <expresso> denota uma frmula matemtica que produz um valor;
Semntica: (i) <expresso> avaliada e produz um valor; (ii) esse valor copiado para <varivel>, se
sobrepondo ao valor anteriormente armazendo nela.
13. (1 ponto) Escreva um programa na linguagem C que receba como entrada seis algarismos (0 ou 1)
correspondentes a um nmero binrio, e escreva na sada o nmero decimal correspondente.
Formate adequadamente a entrada e a sada e emita mensagens de orientao para o usurio.
#include <stdio.h>
int main () {
int d, valor;
printf ("Digite o 1 algarismo: ");
scanf ("%d",&d);
valor=d*32;
printf ("Digite o 2 algarismo: ");
scanf ("%d",&d);
valor=valor+d*16;
printf ("Digite o 3 algarismo: ");
scanf ("%d",&d);
valor=valor+d*8;
printf ("Digite o 4 algarismo: ");
scanf ("%d",&d);
valor=valor+d*4;
printf ("Digite o 5 algarismo: ");
scanf ("%d",&d);
valor=valor+d*2;

printf ("Digite o 6 algarismo: ");


scanf ("%d",&d);
valor=valor+d;
printf ("O valor convertido para decimal %d\n",valor);
}

Das könnte Ihnen auch gefallen