Upload
lamhuong
View
218
Download
0
Embed Size (px)
Citation preview
INFORMÁTICA APLICADAINFORMÁTICA APLICADAINFORMÁTICA APLICADAINFORMÁTICA APLICADAAULA 02 AULA 02 AULA 02 AULA 02 –––– LINGUAGEM DE LINGUAGEM DE LINGUAGEM DE LINGUAGEM DE
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
CURSO: Bacharelado em Ciências e Tecnologia
AULA 02 AULA 02 AULA 02 AULA 02 –––– LINGUAGEM DE LINGUAGEM DE LINGUAGEM DE LINGUAGEM DE PROGRAMAÇÃO C++PROGRAMAÇÃO C++PROGRAMAÇÃO C++PROGRAMAÇÃO C++
ProfProfProfProfª Danielle Casilloª Danielle Casilloª Danielle Casilloª Danielle Casillo
COMPILADORES
� Toda linguagem de programação possui umtradutor de código. Este tradutor é o compiladorcompiladorcompiladorcompilador....
� Chamamos de compilador o programa que traduz
Aula 02 - Linguagem de Programação C++
� Chamamos de compilador o programa que traduzum arquivo escrito em código de linguagem deprogramação (arquivo-fonte) para a linguagem domicroprocessador, criando um arquivo capaz deexecutar as instruções pedidas (arquivoexecutável).
2
O QUE É UM COMPILADOR
� O primeiro passo de um compilador é analisar ocódigo presente no arquivo-fonte, verificando seexistem erros de sintaxe.
Aula 02 - Linguagem de Programação C++
� Caso algum erro de sintaxe seja encontrado, acompilação é interrompida para que oprogramador possa corrigir estes erros.
3
O QUE É UM COMPILADOR
� Caso o código não possua erros, o próximo passodo compilador é criar um arquivo de código-objeto,que possui as instruções do programa játraduzidas para a linguagem da máquina e
Aula 02 - Linguagem de Programação C++
traduzidas para a linguagem da máquina einformações sobre alocação de memória, variáveise funções.
� A partir deste arquivo de código-objeto, ocompilador finalmente cria um arquivo executávelcom o programa compilado, que funcionaindependente do compilador e realiza asinstruções criadas pelo programador. 4
COMPILADORES DE C++
� Existem muitos compiladores de C++ no mercado.
� Os mais famosos são os softwares da Borland eda Microsoft, que são realmente muito bons e
Aula 02 - Linguagem de Programação C++
da Microsoft, que são realmente muito bons eoferecem muitos recursos.
� O problema é que estes compiladores são caros evoltados principalmente para programadoresexperientes, que podem fazer uso dos recursosavançados destes programas.
5
COMPILADORES DE C++
� Para quem está ainda aprendendo a linguagem enão quer gastar dinheiro com compiladores,existem várias opções de compiladores freewarefreewarefreewarefreeware(software livre, “de“de“de“de graça”graça”graça”graça”).
Aula 02 - Linguagem de Programação C++
(software livre, “de“de“de“de graça”graça”graça”graça”).
� Para nos ajudar a aprender a programar em C++utilizaremos o compilador freeware muitoutilizado, o DevCDevCDevCDevC++++++++....
6
DEVC++
� O Dev-C++ é um compilador freewarefreewarefreewarefreeware dalinguagem C++.
� É uma opção muito interessante, pois é de fácil
Aula 02 - Linguagem de Programação C++
� É uma opção muito interessante, pois é de fácilutilização e aprendizado para usuários novos epossui muitos recursos avançados para usuáriosexperientes. Além de, claro, seu download sergratuito.
7
DEVC++
� A versão mais recente do DevCDevCDevCDevC++++++++ pode ser baixadaatravés da página httphttphttphttp:::://dev//dev//dev//dev----cccc....softonicsoftonicsoftonicsoftonic....comcomcomcom....br/br/br/br/, nolink “Download”.
Aula 02 - Linguagem de Programação C++
� A versão mais recente do DevCDevCDevCDevC++++++++ é 4444....9999....9999....2222.
8
INTERFACE DO DEVC++
Aula 02 - Linguagem de Programação C++
� A tela principal do programa.
9
INTERFACE DO DEVC++
� Os menus principais do programa são muitoparecidos com os programas windows padrão.Temos os menus:
� ArquivoArquivoArquivoArquivo:::: possui as funções básicas de manuseio
Aula 02 - Linguagem de Programação C++
ArquivoArquivoArquivoArquivo:::: possui as funções básicas de manuseiode arquivos (criar novo arquivo, abrir arquivo,fechar, imprimir, ver propriedades).
� EditarEditarEditarEditar:::: aonde estão localizadas as funções deedição básicas (copiar, recortar, colar) e algumasfunções úteis para programação (como comentare descomentar trechos do programa.
10
INTERFACE DO DEVC++
� LocalizarLocalizarLocalizarLocalizar:::: possui os comandos de procurar esubstituir partes do código.
� ExibirExibirExibirExibir:::: permite o controle de quais componentes da
Aula 02 - Linguagem de Programação C++
� ExibirExibirExibirExibir:::: permite o controle de quais componentes datela são exibidos.
� ProjetoProjetoProjetoProjeto:::: refere-se a projetos de programas quepossuem vários componentes e arquivos decódigos separados e é utilizado para adicionar eretirar componentes do projeto.
11
INTERFACE DO DEVC++
� ExecutaExecutaExecutaExecuta:::: é talvez o mais importante para nós, enele estão localizadas as funções básicas docompilador (como os comandos CompilarCompilarCompilarCompilar,ExecutarExecutarExecutarExecutar) e algumas funções úteis como procurarpor erros de sintaxe.
Aula 02 - Linguagem de Programação C++
por erros de sintaxe.
�DebugDebugDebugDebug:::: serve para controlar o debug de umprograma, que é a sua execução passo-a-passopara melhor análise e busca por erros.
12
INTERFACE DO DEVC++
� FerramentasFerramentasFerramentasFerramentas:::: refere-se a várias opções docompilador, do ambiente de trabalho e de edição,além de configurações diversas.
Aula 02 - Linguagem de Programação C++
� CVSCVSCVSCVS:::: é uma função extra do compilador, e não nostem serventia.
� JanelaJanelaJanelaJanela:::: possui comandos úteis para os casos emque temos vários arquivos ou projetos abertos aomesmo tempo e precisamos alternar entre eles.
13
INTERFACE DO DEVC++
� Logo abaixo dos menus, temos as barras deferramenta com as principais funções e comandosdo programa representados por ícones paraacesso rápido.
Aula 02 - Linguagem de Programação C++
acesso rápido.
� Abaixo das barras de ferramentas, estão as duasprincipais janelas do programa. A janela daesquerda é chamada de Navegador de Classes eProjetos.
14
INTERFACE DO DEVC++
� A janela da direita é nossa tela de trabalho, ondedigitamos nossos códigos.
� Note que caso exista mais de um arquivo sendo
Aula 02 - Linguagem de Programação C++
� Note que caso exista mais de um arquivo sendotrabalhado ao mesmo tempo, podemos alternarentre eles através das pequenas abas que existemdiretamente acima da tela de trabalho, cada umaidentificada pelo nome de seu arquivo.
15
INTERFACE DO DEVC++
� Finalmente, a janela inferior do programa possuivárias informações sobre o processo decompilação e debugagem de um programa.
Aula 02 - Linguagem de Programação C++
� Ela é particularmente útil para encontrar erros decompilação.
16
UTILIZAÇÃO DO DEVC++
� Para iniciarmos um novo arquivo de código, épreciso acessar o menu “Arquivo“Arquivo“Arquivo“Arquivo ---->>>> NovoNovoNovoNovo ---->>>>ArquivoArquivoArquivoArquivo Fonte”Fonte”Fonte”Fonte” ou então utilizar o atalho CTRLCTRLCTRLCTRL ++++ NNNN....O novo arquivo será criado imediatamente e
Aula 02 - Linguagem de Programação C++
O novo arquivo será criado imediatamente epoderemos começar a trabalhar nele.
17
UTILIZAÇÃO DO DEVC++
� As funções básicas do compilador podem serencontradas no menu ExecutarExecutarExecutarExecutar. Os comandos queutilizaremos são: CompilarCompilarCompilarCompilar (atalho: CTRLCTRLCTRLCTRL ++++ FFFF9999),ExecutarExecutarExecutarExecutar (CTRLCTRLCTRLCTRL ++++ FFFF10101010) e CompilarCompilarCompilarCompilar &&&& ExecutarExecutarExecutarExecutar
Aula 02 - Linguagem de Programação C++
ExecutarExecutarExecutarExecutar (CTRLCTRLCTRLCTRL ++++ FFFF10101010) e CompilarCompilarCompilarCompilar &&&& ExecutarExecutarExecutarExecutar(atalho: FFFF9999).
� Utilizamos o comando CompilarCompilarCompilarCompilar para compilar oarquivo código do programa em que estamostrabalhando e gerar um arquivo executável desteprograma.
18
UTILIZAÇÃO DO DEVC++
� Em seguida, utilizamos o comando ExecutarExecutarExecutarExecutar paraautomaticamente executar o arquivo criado pelacompilação. O comando CompilarCompilarCompilarCompilar &&&& ExecutarExecutarExecutarExecutar é aunião dos dois comandos: compilacompilacompilacompila eeee executaexecutaexecutaexecuta o
Aula 02 - Linguagem de Programação C++
união dos dois comandos: compilacompilacompilacompila eeee executaexecutaexecutaexecuta oprograma logo em seguida.
� Como já indicado antes, estes três comandospossuem ícones de acesso rápido na barra deferramentas.
19
UTILIZAÇÃO DO DEVC++
Aula 02 - Linguagem de Programação C++
20
ERROS NO DEVC++
� Quando compilamos um arquivo de código no Dev-C++, a janela indicadora do progresso dacompilação é automaticamente aberta.
Aula 02 - Linguagem de Programação C++
� Caso o arquivo de código não contenha nenhumerro, a compilação terminará e a janela deprogresso permanecerá aberta para indicar quetudo correu bem (verifique o quadrado da janelachamado “status”“status”“status”“status”: ele deverá indicar DoneDoneDoneDone após ofim da compilação).
21
ERROS NO DEVC++
� Desta maneira, após o fim da compilação bastafechar a janela e executar o programa executávelque foi gerado.
Aula 02 - Linguagem de Programação C++
22
ERROS NO DEVC++
� Caso nosso arquivo de código contenha uma oumais linhas de códigos com erro, a compilação éinterrompida para que estes erros (ouadvertências) sejam verificados pelo programador.
Aula 02 - Linguagem de Programação C++
advertências) sejam verificados pelo programador.
� A janela de progresso da compilação é fechada, ea janela inferior do programa é maximizadamostrando todos os erros que foram encontradosdurante a compilação do programa.
23
ERROS NO DEVC++
Aula 02 - Linguagem de Programação C++
� A figura acima mostra que a janela possui três
24
� A figura acima mostra que a janela possui trêscolunas: linhalinhalinhalinha, unidadeunidadeunidadeunidade e mensagemmensagemmensagemmensagem....
� A coluna linhalinhalinhalinha indica a linha de código onde o errofoi encontrado;
� A coluna unidadeunidadeunidadeunidade indica o arquivo onde foiencontrado o erro
� A coluna mensagemmensagemmensagemmensagem relata o tipo de erroencontrado.
ESTRUTURA BÁSICA DE UM PROGRAMA EM C++� As duas primeiras linhas são o
cabeçalhocabeçalhocabeçalhocabeçalho dodododo programaprogramaprogramaprograma. Todoprograma deve ter umcabeçalho desse tipo paradefinir quais as bibliotecas ele
Aula 02 - Linguagem de Programação C++
#include <iostream>using namespace std;int main(){//comandos do programa definir quais as bibliotecas ele
utilizará. “Bibliotecas” sãoarquivos que normalmente sãoinstalados juntos com ocompilador e que possuem oscomandos e funçõespertencentes à linguagem.
25
//comandos do programasystem(“PAUSE > null”);}
ESTRUTURA BÁSICA DE UM PROGRAMA EM C++
Aula 02 - Linguagem de Programação C++
#include <iostream>using namespace std;int main(){//comandos do programa
� O cabeçalho #include<>#include<>#include<>#include<> serve para
indicar ao compilador todas as
bibliotecas que este programautilizará. Na maioria dos programasque escreveremos durante este curso,só utilizaremos o #include#include#include#include
26
//comandos do programasystem(“PAUSE > null”);}
só utilizaremos o #include#include#include#include
<<<<iostreamiostreamiostreamiostream>>>>, que serve para incluir abiblioteca iostreamiostreamiostreamiostream em nossosprogramas. Esta biblioteca contém asprincipais funções, comandos eclasses de entrada e saída de C++,necessárias para realizar programasque, por exemplo, recebam dados viateclado e enviem dados via monitor.
ESTRUTURA BÁSICA DE UM PROGRAMA EM C++
Aula 02 - Linguagem de Programação C++
#include <iostream>using namespace std;int main(){//comandos do programa
� A segunda linha do cabeçalho,usingusingusingusing namespacenamespacenamespacenamespace stdstdstdstd;;;; , é umaviso ao compilador queestaremos utilizando oscomandos e funções padrão
27
//comandos do programasystem(“PAUSE > null”);}
comandos e funções padrãode C++.
� Num programa normal, quenão utiliza outras bibliotecasalém da padrão de C++,utilizamos o namespacenamespacenamespacenamespace stdstdstdstdcomo nosso campo de nomesde comandos e funções.
ESTRUTURA BÁSICA DE UM PROGRAMA EM C++
Aula 02 - Linguagem de Programação C++
#include <iostream>using namespace std;int main(){//comandos do programa
� Tudo o que acontece durante aexecução do programa estácontido dentro de uma funçãoprincipal, chamada mainmainmainmain.Declaramos a função mainmainmainmain
28
//comandos do programasystem(“PAUSE > null”);}
Declaramos a função mainmainmainmaincom:
intintintint mainmainmainmain (((( ))))
� Esta função marca o ponto departida do programa.
ESTRUTURA BÁSICA DE UM PROGRAMA EM C++
Aula 02 - Linguagem de Programação C++
#include <iostream>using namespace std;int main(){//comandos do programa
� Todos os comandosexecutados pelo programaestão contidos entre as chaves{{{{ }}}}
� O compilador ignora espaços
29
//comandos do programasystem(“PAUSE > null”);}
� O compilador ignora espaçosem branco, tabulações elinhas em branco.
ESTRUTURA BÁSICA DE UM PROGRAMA EM C++
Aula 02 - Linguagem de Programação C++
#include <iostream>using namespace std;int main(){//comandos do programa
� A última linha antes do fecha-chaves éum comando normalmente utilizado aofim de um programa.
� A linha system(“PAUSEsystem(“PAUSEsystem(“PAUSEsystem(“PAUSE >>>> nullnullnullnull”)”)”)”);;;; é umachamada de função própria de C++. Afunção system(system(system(system( )))) recebe argumentos
30
//comandos do programasystem(“PAUSE > null”);}
função system(system(system(system( )))) recebe argumentoscomo o PAUSEPAUSEPAUSEPAUSE que na verdade sãocomandos para o sistema operacional.Neste caso, ela recebe o comando“PAUSE“PAUSE“PAUSE“PAUSE >>>> nullnullnullnull”””” para pausar a execuçãodo programa até que o usuário aperteuma tecla qualquer. Utilizamos esterecurso para que a tela do programa nãoseja terminada automaticamente pelosistema, impedindo que vejamos osresultados do programa.
O PRIMEIRO PROGRAMA
Aula 02 - Linguagem de Programação C++
# include <iostream>using namespace std;int main(){cout << "Primeiro Programa";
31
cout << "Primeiro Programa";system("PAUSE > null");}
� Salve o programa com o nome: primeiroprogramaprimeiroprogramaprimeiroprogramaprimeiroprograma....cppcppcppcpp
� O sufixo ....cppcppcppcpp indica programa-fonte em CCCC plusplusplusplus plusplusplusplus
INSTRUÇÕES DE PROGRAMA
� O nosso primeiro programa contém uma única instrução:
cout << “Primeiro Programa”;cout << “Primeiro Programa”;cout << “Primeiro Programa”;cout << “Primeiro Programa”;
Aula 02 - Linguagem de Programação C++
� Essa instrução imprime a frase entre aspas duplas na tela.
� Toda instrução C++ termina em um ponto e vírgula (;;;;).
� Uma função pode ter qualquer número de instruções.
� As instruções deve ser escritas entre as chaves quedelimitam o corpo da função e são executadas na ordem emque as escrevemos.
32
INSTRUÇÕES: COUT E PRINTF
� coutcoutcoutcout e printfprintfprintfprintf são objetos da classe de I/O (leitura eimpressão) predefinida em C++.
� Os objetos coutcoutcoutcout e printfprintfprintfprintf esta associado à saída padrãode vídeo.
Aula 02 - Linguagem de Programação C++
� O operador <<<<<<<<, chamado de “operador“operador“operador“operador dededede inserção”inserção”inserção”inserção”,conecta a mensagem a ser impressa à coutcoutcoutcout.
� O operador (((( )))) conecta a mensagem a ser impressa àprintfprintfprintfprintf.
coutcoutcoutcout <<<<<<<< “Primeiro“Primeiro“Primeiro“Primeiro Programa”Programa”Programa”Programa”;;;;
printfprintfprintfprintf (“Primeiro(“Primeiro(“Primeiro(“Primeiro Programa”)Programa”)Programa”)Programa”);;;;33
CÓDIGOS ESPECIAIS
� São caracteres que não podem ser digitadosdiretamente do teclado para dentro do nossoprograma.
� Esses caracteres dever ser digitados por meio dacombinação do sinal \\\\ (barra invertida) com outros
Aula 02 - Linguagem de Programação C++
combinação do sinal \\\\ (barra invertida) com outroscaracteres:
34
Códigos EspeciaisCódigos EspeciaisCódigos EspeciaisCódigos Especiais SignificadoSignificadoSignificadoSignificado
\n Nova linha
\t Tabulação
\a Beep
\\ Barra invertida
\” Aspa dupla
ASPAS SIMPLES E ASPAS DUPLAS
� AspasAspasAspasAspas simplessimplessimplessimples:::: servem para representar um únicocaractere.
� Ex: ‘A’‘A’‘A’‘A’, ‘‘‘‘4444’’’’
Aula 02 - Linguagem de Programação C++
� AspasAspasAspasAspas duplasduplasduplasduplas:::: representam cadeias de caracteres.
� Ex: “Primeiro“Primeiro“Primeiro“Primeiro programa”programa”programa”programa”
35
IMPRIMINDO OUTROS TIPOS DE DADOS
� Exemplo:
Aula 02 - Linguagem de Programação C++
#include <iostream>using namespace std;int main(){
36
{cout << "Venus esta a " << 67 << " milhoes de milhas" << '\n' << "do sol" ;system("PAUSE > null");}
IMPRIMINDO OUTROS TIPOS DE DADOS
� Exemplo:
Aula 02 - Linguagem de Programação C++
#include <iostream>using namespace std;int main()
37
int main(){cout << " A letra " << 'j';cout << " pronuncia-se " << "jota" << '.';system("PAUSE > null");}
ALGUMAS PALAVRAS CHAVES DE C++
� break� char� class� continuedo
Aula 02 - Linguagem de Programação C++
� goto� if� int� long� return� do
� double� else� float� for
38
� return� short� unsigned� void� while
NOMES DE VARIÁVEIS
� Em C++, letras maiúsculas e minúsculas sãodiferentes.
� Os seguintes nomes são distintos:
� PESOPESOPESOPESO
Aula 02 - Linguagem de Programação C++
� PESOPESOPESOPESO
� PesoPesoPesoPeso
� pesopesopesopeso
� peSopeSopeSopeSo
� Uma variável não pode ter o mesmo nome de umapalavra-chave de C++.
39
NOMES DE VARIÁVEIS
� Existem algumas regras para a escolha dos nomesde variáveis em C++:
�Nomes de variáveis só podem conter letrasletrasletrasletras dodododoalfabetoalfabetoalfabetoalfabeto, númerosnúmerosnúmerosnúmeros e o caractercaractercaractercaracter underlineunderlineunderlineunderline “_”“_”“_”“_”.
Aula 02 - Linguagem de Programação C++
alfabetoalfabetoalfabetoalfabeto, númerosnúmerosnúmerosnúmeros e o caractercaractercaractercaracter underlineunderlineunderlineunderline “_”“_”“_”“_”.
�Não podem começar com um número.
40
DECLARAÇÃO DE VARIÁVEIS
� As instruções: intintintint numnumnumnum1111;;;;
intintintint numnumnumnum2222;;;;
são exemplos de declaração de variáveis.
� Uma declaração de variável consiste no nome de um tipo,seguido do nome da variável, seguido de ponto e vírgula.
Aula 02 - Linguagem de Programação C++
seguido do nome da variável, seguido de ponto e vírgula.
� Um programa em C++C++C++C++ não funciona se você não declararsuas variáveis. As variáveis podem ser declaradas emqualquer lugar do programa.
� Se você tiver mais de uma variável do mesmo tipo, poderádeclará-las de uma única vez, separando seus nomes porvírgulas.
� Ex: intintintint A,A,A,A, B,B,B,B, CCCC;;;;41
TIPOS DE VARIÁVEIS
� Tipo de variável diz respeito ao tamanho dememória e à forma de armazenamento.
� Em C++ existem cinco tipos básicos de variáveis:
Aula 02 - Linguagem de Programação C++
TIPOTIPOTIPOTIPO BITBITBITBIT BYTESBYTESBYTESBYTES ESCALAESCALAESCALAESCALA
42
TIPOTIPOTIPOTIPO BITBITBITBIT BYTESBYTESBYTESBYTES ESCALAESCALAESCALAESCALA
char 8 1 -128 a 127
int 16 2 -32768 a 32767
float 32 4 3.4E-38 a 3.4E+38
double 64 8 1.7E-308 a 1.7E+308
void 0 0 nenhum valor
TIPOS DE VARIÁVEIS
� Os modificadores de tipo oferecidos por C++ são:
� long
� short
� unsigned
Aula 02 - Linguagem de Programação C++
� unsigned
43
TIPOTIPOTIPOTIPO BITBITBITBIT BYTESBYTESBYTESBYTES ESCALAESCALAESCALAESCALA
unsigned char 8 1 0 a 255
unsigned 16 2 0 a 65535
short 16 2 -32768 a 32767
long 32 4 -2147483648 a 2147483647
unsigned long 32 4 0 a 4294967295
long double 80 10 3.4E-4932 a 1.1E+4932
VARIÁVEIS
� Exemplo: Um programa que cria duas variáveis.
Aula 02 - Linguagem de Programação C++
#include <iostream>using namespace std;int main(){
44
{int num1;num1 = 44;cout << "\n O primeiro numero e " << num1;int num2;num2 = 88;cout << "\n O segundo numero e " << num2;system("PAUSE > null");}
VARIÁVEIS FRACIONÁRIAS (FLOAT)
� Existem duas maneiras de representar números fracionáriosem C++. A primeira e mais simples, é utilizar o ponto paraseparar as partes inteiras e fracionárias.
� ExExExEx:::: 0000....0098009800980098
1111....25252525
Aula 02 - Linguagem de Programação C++
1111....25252525
3333....14141414
� A segunda maneira é utilizar a notação científica ounúmeros em ponto flutuante que correspondem ao quechamamos de “números“números“números“números reais”reais”reais”reais”.
� ExExExEx:::: 3333....16161616EEEE7777 (indica que 3333....16161616 será multiplicado por 10101010 elevadoà potência 7777, isto é, 31600000316000003160000031600000). Esta indicação chama-senotaçãonotaçãonotaçãonotação científicacientíficacientíficacientífica.
45
INICIALIZANDO VARIÁVEIS
� Significa atribuir um valor a ela na mesmainstrução de sua declaração.
Aula 02 - Linguagem de Programação C++
#include <iostream>using namespace std;int main()
46
int main(){int evento = 5;char corrida = 'C';float tempo = 27.25;cout << "\n O tempo vitorioso na eliminatoria "<< corrida << "\n da competicao " << evento<< " foi " << tempo << '.';system("PAUSE > null");}