Estrutura dos Programas

Os programas fonte em C++ desenvolvidos neste componente curricular serão constituídos de:
1-um cabeçalho o qual será composto: pelas diretivas de compilador, pelos valores de constantes simbólicas, declaração de variáveis e declaração de rotinas.
2-um bloco de instruções principal e outros blocos de rotinas.
3-documentação do programa em forma de comentários.


Exemplo de programa que será tomado como base para os demais programas da disciplina;

//1) cabeçalho
#include <iostream.h>
#include <stdlib.h> 
#include <math.h> 
#include <stdio.h> 
#include <conio.h> 
#define uni " UNIJUI- Universidade Regional do Noroeste do Estado do Rio Grande do Sul\n"
#define curso " Licenciatura em Matemática\n"
#define alunos " Fulano de Tal e Beltrano de Tal\n\n" 
#define pi 3.1415

int i,j,k;  // variável inteira global
           //2) início do bloco principal de instruções
void main() 
{ 
//definir tipos das variáveis 
float n1, n2, n3,soma;  // variável racinal local

// apresentar programa ao aluno
cout<<uni<<curso<<alunos;
cout<< " Programa modelo, para alunos do curso de matemática \n "; 
cout<< " Este programa recebe 3 numeros reais e mostra a soma\n";


// Entrada dos dados 
cout<<"Digite o primeiro valor utilizando ponto para separar parte inteira \n" ;
cin>>n1; 

cout<<"Digite o segundo valor utilizando ponto para separar parte inteira\n" ;
cin>>n2;

cout<<"Digite o terceiro valor porem um numero inteiro\n" ;
cin>>i;

//Processamento dos dados ou cálculos
soma=n1+n2+i;

//exposição dos resultados ou/e procedimentos
cout<< " A soma dos 3 valores fornecidos vale: "; 
cout<< soma; 

//Espera para ver os resultados 
getche(); 
}

//3) comentários indicando partes do bloco principal, distribuídos no programa todo

Os comandos da linguagem C/C++ devem ser escritos SEMPRE em letras minúsculas e no final de cada instrução deve-se colocar ; (ponto e vírgula) 

Cabeçalho 

O cabeçalho dos programas, que serão trabalhados neste componente curricular, será composto por algumas das diretivas de compilador. As diretivas escolhidas já na forma como serão colocadas no cabeçalho são:
#include <iostream.h>
#include <stdlib.h> 
#include <math.h> 
#include <stdio.h> 
#include <conio.h>
#define uni " UNIJUI - Universidade Regional do Noroeste do Estado do Rio Grande do Sul\n"
#define curso " Licenciatura em Matemática\n"
#define alunos " Fulano de Tal e Beltrano de Tal\n\n" 

A diretiva #define diz ao compilador quais são as constantes simbólicas usadas no programa

Declaração de variáveis

Na maioria das linguagens, as variáveis devem ser declaradas no inicio do programa. Estas variáveis podem ser de vários tipos. Segue a lista de variáveis utilizadas nos programas que serão elaborados durante o curso:

Tipo em bits intervalo de valores 
char 8 0 a 255
int 16 -32768 a 32767
float 32 3.4E-38 a 3.4E+38
double 64 1.7E-308 a 1.7E+308
void 0 sem valor

A seguir estão os caracteres Válidos, utilizados em C++ 
Caracteres válidos para formar nomes
a b c d e f g h i j k l m n o p q r s t u v w x y z 
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 2 3 4 5 6 7 8 9 0 _

Nome das variáveis
Para nomear as variáveis devemos seguir algumas regras:
O nome de uma variável não deve ultrapassar 32 caracteres de tamanho, embora seja permitido pode causar muitos erros. 
O nome de uma variável pode começar somente com o sinal "_" (sublinhado) ou uma letra, maiúscula ou minúscula, de a até z ou A até Z. Não se deve iniciar o nome de uma variável com um algarismo 
Não poderá haver espaço no nome de variável. Pode-se utilizar o _(sublinhado) para deixar os nomes mais legíveis.
Caracteres especiais em nomes de variáveis, tais como ! @ # % ] - + ^ $ também não são permitidos. 
Exemplo declaração de variáveis onde se pode ver o nome das variáveis que do tipo int (inteiro) que, neste caso são i, j e k.
int i, j, k; 
As variáveis declaradas no cabeçalho são denominadas globais. Podem ser alteradas em qualquer ponto do programa. 

Palavras reservadas

O conjunto de palavras reservadas usadas em C e que não podem ser utilizadas como nome de variável ou nome de função o seguinte:

asm, auto, break, case, cdecl, char, class, const ,continue, _cs, default, delete, do, double, _ds else, enum, _es extern, _export far, _fastcall, float, for, friend, goto, huge, if, inline, in,t interrupt, _loadds, long, near, new, operator, pascal, private, protected, public, register, return, _saveregs, _seg short, signed, sizeof _ss, static, struct, switch, template, thi,s typedef, union, unsigned, virtual, void ,volatile, while.

Constantes simbólicas

Tipos básicos de constantes: inteiras, de ponto flutuante, caracteres e strings. Constantes inteiras e de ponto flutuante representam números de um modo geral. Caracteres e strings representam letras e agrupamentos de letras (palavras).

Constantes simbólicas de ponto flutuante

Em C++ os números racionais são representados em base 10, por números com um ponto decimal e um expoente. Um número ponto flutuante deve ter um ponto decimal, e não pode ser substituído por uma vírgula. Um número de ponto flutuante pode ser escrito em notação científica. Neste caso o x10 é substituído por e ou E. O número 1.23e7 representa 1.23 x 10^7 ou 12 300 000.

Em C++, letras maiúsculas são diferentes de letras minúsculas: Por exemplo: MAX, max, Max são nomes diferentes para o compilador. Esta propriedade é chamada de case sensibility.

Declaração de blocos de rotinas

Blocos de rotinas são arquivos fonte com procedimentos que podem servir a vários programas. ou a várias partes do programa. 

Blocos de instruções
Os blocos de instruções em C++, tem o seguinte formato:

tipo_retornado nome_do Bloco()

instruções;
}

O programa soma1.cpp, possui somente um bloco de instruções que, após tirar os comentários, é o seguinte:

void main() 

float n1, n2, n3, soma; 

cout<<uni<<curso<<alunos;
cout<< " Programa modelo, para alunos do curso de matemática \n "; 
cout<< " Este programa recebe 3 numeros reais e mostra a soma \n";

cout<<" Digite o primeiro valor utilizando ponto para separar parte inteira \n" ;
cin>>n1; 

cout<<" Digite o segundo valor utilizando ponto para separar parte inteira \n" ;
cin>>n2;

cout<<" Digite o terceiro valor porem um numero inteiro \n" ;
cin>>i;
soma=n1+n2+i;

cout<< " A soma dos 3 valores fornecidos vale: "; 
cout<< soma; 

getche(); 
}


Quando o programa possuir somente o grupo principal, ou seja, somente a função main(), que quer dizer principal este bloco geralmente é composto pelas seguintes partes que aparecem nos comentários dentro do bloco. Veja estas partes.
O início do bloco principal pode ser sempre assim: 

void main() 
{ (abrir chave).

Após o {seguem a seguintes partes}:

1)Definir tipos das variáveis do bloco; 
2)Apresentar programa ao aluno;
3)Entrada dos dados; 
4)Processamento dos dados ou cálculos;
5)Exposição dos resultados ou/e procedimentos;
6)Espera para ver os resultados. 
Para finalizar um bloco utiliza-se i símbolo } (fecha chaves).

A seguir serão detalhadas as partes citadas acima.

Parte 1: Definir tipos das variáveis do bloco 

Da mesma forma como são declaradas as variáveis globais, que fazem parte do cabeçalho, declara-se as variáveis de cada bloco, ou seja, tipo var1, var2, var3, ...,. varn; . 
Exemplo retirado do programa soma1.cpp.
float n1,n2,n3; 

Parte 2: Apresentar programa 

Este é a tela de abertura do programa e deverá ter, pelo menos as seguintes informações:
a)Nome dos componentes da equipe que elaboraram o programa;
b)Para quem o programa se destina;
c)O quê o programa faz;

Parte 3:Entrada de dados

Em C++ existem varias maneiras de fazer a leitura de informações. No exemplo acima cout<< é uma instrução de escrita na tela, cin>> é uma instrução de leitura de teclado. 
Geralmente, cada entrada, via teclado, é precedida de uma saída via tela. 

Exemplo tirado do programa soma1.cpp:
cout<<" Digite o primeiro valor utilizando ponto para separar parte inteira \n"; 
cin>>n1; 
A primeira instrução termina após o ; (ponto e vírgula) e serve para fazer a saída do texto que está entre aspas, via tela.
A segunda instrução é cin>>n1; serve para esperar e aceitar a entrada do valor da variável n1, via teclada.


Parte 4: Processamento dos dados ou cálculos

É nesta parte do programa que o algoritmo elaborado com antecedência se faz mais necessário, no caso de um programa mais complexo. Nesta parte é que são desenvolvidos os todos os cálculos na ordem em que devem ser feitos. Se o problema for muito complexo, aconselha-se que os procedimentos sejam definidos em blocos menores em forma de função, fora do bloco principal. Neste caso, é nesta parte que se faz a chamada das funções ou procedimentos. Isto ocorre porque será adotado o paradigma de programação procedural. Se for de vosso interesse, façam uma pesquisa na internet sobre paradigmas de programação. 

Parte 5: Exposição dos resultados

Exemplo de saída retirado do mesmo programa:
cout<< soma;
Na instrução cout<< soma ; cout<< é o comando para saida via tela, soma é o valor que deve sair via tela e o ;(ponto e vírgula) indica o fim da instrução. Pode-se notar que soma está sem aspas. Se for com aspas sairá a palavra soma e não o seu valor. Portanto nomes de variáveis não devem estar entre aspas para que seja exposto o conteúdo da variável , ou seja, seu valor.

Informações úteis para efetuar saídas via tecladas, utilizando o comando cout<<

a)Para expor na tela uma informação em formato de texto (com palavras, símbolos permitidos ou números fixos) é necessário que o texto esteja entre aspas. 
b)Para obter um espaço em branco, é preciso colocar o espaço entre aspas. Fora destas o espaço não será efetivado quando o programa for executado. 
c)Para que seja dada nova linha é preciso colocar barra invertida e a letra n, ou seja, \n entre as aspas. Também se pode obter nova linha utilizando assim: cout<<endl; 
d)Para fazer tabulação coloca-se \t em vez de \n. 
e)Para expor o conteúdo de variáveis, estas devem estar sem as aspas.

Parte 6: Espera para ver os resultados

Sempre que um resultado é mostrado na tela, é necessário colocar uma instrução após a saída dos resultados para que o usuário do programa possa ler estes resultados, utilizando o tempo que este desejar. No programa soma1.cpp esta espera é feita com a instrução formada por pela função getche() e o ponto e vírgula. 

getche(); 

Esta instrução será adotada para os demais programas.

Documentação

A documentação de um programa consiste, entre outros, no registro de informações sobre as finalidades do programa, sua funcionalidade finalidade de cada variável, cada procedimento e/ou cada função. Neste componente curricular, a documentação será feita em forma de comentários, visto que são programas de porte muito pequeno.

Os comentários dos programas fonte em C++ pode ser feito de duas formas:
a) Para colocar comentário numa linha pode-se utilizar duas barras de divisão //, O que tiver na mesma linha, mas após as barras, não será interpretado pelo compilador.
Exemplo:
// Definir tipos das variáveis do bloco 

b) Para colocar comentário em várias linhas, utiliza-se /* (barra e asterisco) para marcar o início do comentário e */ para indicar o final do comentário. 
Exemplo:
/* Processamento dos dados ou cálculos*/