O que é um programa de computador

Propaganda
O que é um programa de computador
Os computadores das variadas arquiteturas têm funcionamento semelhante. A figura 1
apresenta a arquitetura simplificada de um computador.
Figura 1 – Arquitetura simplificada de um computador.
A parte física do computador é chamada de hardware, que é formado basicamente por
uma Unidade Central de Processamento (UCP), pela memória e pelos dispositivos de
entrada e saída. O barramento faz a ligação desses componentes.
A UCP (ou processador) contém um conjunto relativamente pequeno de instruções que é
capaz de executar. Cada processador contém um conjunto diferente de instruções,
apesar de similares entre si. As instruções que o processador executa são buscadas na
memória. Essas instruções podem ser desde operações matemáticas a interações com os
dispositivos de entrada e saída. Chamamos de programa de computador um conjunto de
instruções que será executado pelo processador em uma determinada sequência e que
faz com que o computador execute alguma tarefa.
Como podemos perceber o programa nada mais é que um tipo de algoritmo. Sua
particularidade é que suas operações são específicas para o computador e restritas ao
conjunto de instruções que o processador pode executar. Podemos considerar esse
conjunto de instruções como a primeira linguagem de programação do computador,
também chamada de linguagem de máquina. As linguagens de programação mais
semelhantes à linguagem de máquina são conhecidas como linguagens de baixo nível. As
linguagens de programação mais parecidas com a linguagem natural são conhecidas
como linguagem de programação de alto nível.
A linguagem de programação que um computador é capaz de “compreender” é composta
apenas de números. Para que um programa escrito em linguagem de alto nível possa ser
executado por um computador, é necessário que o seu código seja traduzido para o
código de máquina. Essa tradução é feita por um compilador ou por um interpretador.
1
O compilador traduz o código-fonte, escrito em linguagem de alto nível, para um código
em linguagem de máquina conhecido como código-objeto. Esse código objeto fica
armazenado em um arquivo em disco e só é carregado em memória no momento de
execução.
Figura 2 – Compilação de um programa.
O interpretador traduz o código-fonte para código-objeto em tempo de execução,
instrução a instrução (não gera arquivo em disco).
Figura 3 – Interpretação de um programa.
Características das linguagens de programação de alto nível:
1. Rigidez Sintática: O compilador é um tradutor relativamente limitado, que só
consegue fazer as traduções sobre um idioma bastante limitado, com construções
muito bem definidas. Apesar de encontrarmos palavras pertencentes à linguagem
natural, elas não serão usadas com a mesma liberdade.
2. Rigidez Semântica: O computador definitivamente não pode lidar com
ambigüidades. Por isso, não adianta o programador ter um intenção se não
conseguir exprimi-la de forma exata. Podemos dizer que o computador é um ótimo
cumpridor de ordens, porém não tem idéia de quais ordens está cumprindo, nem o
contexto em que essas ações estão inseridas.
2
Estrutura Básica de um Programa em C++
#include <iostream>
using namespace std;
int main()
{
//comandos do programa
system("PAUSE > null");
return 0;
}
Entenda a estrutura básica
Linha do programa
#include <iostream>
using namespace std;
Observação
Linha de cabeçalho. O cabeçalho define quais as
bibliotecas ele utilizará. “Bibliotecas” são arquivos
que normalmente são instalados juntos com o
compilador e que possuem os comandos e funções
pertencentes à linguagem.
O cabeçalho #include<> indica ao compilador todas
as bibliotecas que o programa utilizará. Esta
biblioteca contém as principais funções, comandos e
classes de entrada e saída de C++, necessárias
para programas que, por exemplo, recebam dados
via teclado e enviem dados via monitor.
Linha de cabeçalho. É um aviso ao compilador do
uso dos comandos e funções padrão de C++. Ele é
necessário porque em C++ podemos criar várias
bibliotecas para serem utilizáveis em vários
programas. Cada uma dessas bibliotecas contém
comandos, classes e funções próprias, e para evitar
confusões e problemas com os nomes destes
comandos, utilizamos o cabeçalho “using
namespace ...;” para definir qual o campo de nomes
que estamos utilizando. Num programa normal, que
não utiliza outras bibliotecas além da padrão de
C++, utilizamos o namespace std como nosso
campo de nomes de comandos e funções. Assim,
sempre que utilizamos um comando próprio de C++,
o compilador reconhecerá automaticamente este
comando como sendo pertencente à biblioteca
padrão de C++.
3
Linha do programa
int main()
{
//comandos do programa
system("PAUSE > null");
return 0;
}
Observação
Declaração da função principal. Tudo o que
acontece durante a execução do programa está
contido dentro de uma função principal, chamada
main.
Todos os comandos executados pelo programa
estão contidos entre as chaves “{ }” da função
main. Aqui a chave aberta indica o início dos
comandos do programa.
Cada programa terá seus próprios comandos,
logicamente. Entretanto, o encerramento de um
programa geralmente é feito da mesma maneira
para todos eles. As duas últimas linhas antes do
fecha-chaves são dois comandos normalmente
utilizados ao fim de um programa.
É uma chamada de função própria de C++. A
função system( ) recebe argumentos como o
PAUSE que na verdade são comandos para o
sistema operacional. Neste caso, ela recebe o
comando “PAUSE > null” para interromper a
execução do programa até que o usuário aperte
uma tecla qualquer. Utilizamos este recurso para
que a tela do programa não seja terminada
automaticamente pelo sistema, impedindo que
vejamos os resultados do programa.
É a “resposta” da função main para o sistema.
Quase toda função retorna um valor para o
sistema ou programa que a chamou (pode ser o
resultado de uma operação matemática). No
caso da função main, ela retorna um valor para o
sistema operacional que executou o programa.
Esse valor é interpretado pelo sistema como
uma mensagem indicando se o programa foi
executado corretamente ou não. Um valor de
retorno 0 indica que o programa foi executado
sem problemas; qualquer outro valor de retorno
indica problemas. Quando o programa é
executado até o fim, ele retorna 0 ao sistema
operacional, indicando que ele foi executado e
terminado corretamente. Quando o programa
encontra algum erro ou é terminado antes da
hora, ele retorna um valor qualquer ao sistema,
indicando erro durante a execução.
Chave fechada. Fim dos comandos do
programa.
4
O primeiro programa em C.
// Meu primeiro programa em C++
#include <iostream>
using namespace std;
int main()
{
cout << "OLA!";
system("PAUSE>null");
return 0;
}
Linha do programa
// Meu primeiro programa em C++
#include <iostream>
Observação
Esta linha é um comentário. Todas as
linhas que começam com “ // ” são
consideradas comentários e não alteram
o comportamento do programa (isto é,
não são executadas).
Linhas de cabeçalho.
using namespace std;
int main()
Declaração da função principal.
{
cout << "OLA!";
return 0;
Chave aberta.
Exibe valores na tela. Esse programa
exibirá na tela a mensagem OLA!
Interrompe a execução do programa até
o usuário aperte uma tecla qualquer.
Resposta ao sistema.
}
Fecha chave.
system("PAUSE>null");
5
Outros exemplos
Exemplo 1:
//Programa soma
#include <iostream>
using namespace std;
int main()
{
int num1, num2, num3, soma, resp;
num1 = 10;
num2 = 20;
num3 = 30;
soma = num1 + num2 + num3;
cout << "\n O valor da soma e: " << soma << "\n";
system("PAUSE>null");
return 0;
}
Exemplo 2:
//Programa soma de 2 números
#include <iostream>
using namespace std;
int main()
{
int num1, num2, soma;
cout << "\n Digite o primeiro numero ";
cin >> num1;
cout << "\n Digite o segundo numero ";
cin >> num2;
soma = num1 + num2;
cout << "\n O valor da soma e: " << soma << "\n";
system("PAUSE>null");
return 0;
}
6
Exemplo 3:
//Programa lê e mostra nome
#include <iostream>
using namespace std;
int main()
{
char nome[10];
cout << "Escreva o seu nome ";
cin >> nome;
cout << "Voce se chama..." << nome;
system("PAUSE>null");
return 0;
}
Referências
Algoritmos e Programação: Teoria e Prática. Segunda Edição. Marco Medina e Cristina
Fertig. São Paulo. Editora Novatec, 2006.
http://apostilacpp.awardspace.com/index.php?pagina=modulo02 acessado em
15/04/2010.
7
Download