Date post: | 30-Jun-2015 |
Category: |
Documents |
Upload: | hugodrocha |
View: | 296 times |
Download: | 0 times |
Prof. Rafael Baptista E-mail: [email protected]
Twitter: @rafaelpbaptista
Facebook: facebook.com/rpbaptista
Prof. Dr. Rafael Baptista, D.Sc.
Ô abestado!!!
Bresta atenção bessoal, que hoje
tem matéria bra garaio.
Prof. Dr. Rafael Baptista, D.Sc.
Ô abestado!!!
E nós estamos de olho!!!
Prof. Dr. Rafael Baptista, D.Sc.
Ô abestado!!!
Entendeu abestado?!?!
Prof. Dr. Rafael Baptista, D.Sc.
Conteúdo da Aula
Definição das operações matemáticas: resto da divisão, raiz quadrada e potenciação;
Montagem de algoritmos;
Definição do que é uma linguagem de programação;
Apresentação de comandos da linguagem de programação, correspondentes aos comandos utilizados nos algoritmos;
Apresentação de um programa compilador e do seu funcionamento;
Desenvolvimento de programas com a linguagem de programação.
Prof. Dr. Rafael Baptista, D.Sc.
Bibliografia Básica
Lógica de programação e estrutura
de dados
1ª. Edição/2003
Fundamentos da Programação de
Computadores
1ª. Edição/2002
Prof. Dr. Rafael Baptista, D.Sc.
Operadores Matemáticos
Função Operador Operandos Resultado
Soma + X e Y resultado x + y
Subtração - X e Y resultado x – y
Multiplicação * X e Y resultado x * y
Divisão / X e Y resultado x / y
Quociente inteiro div X e Y resultado x div y
Resto da divisão mod X e Y resultado x mod y
Potenciação
pow() ou **
XY
resultado pow(x,y) ou
resultado x**y
Raiz Quadrada sqrt() X resultado sqrt(x)
Prof. Dr. Rafael Baptista, D.Sc.
Montagem de Algoritmos
Algoritmo Exemplo Var nome, cargo : caracter numeroPessoas, totalPessoas : inteiro salario : real Inicio numeroPessoas 1; totalPessoas 0; ... leia(nome, cargo); escreva(“O nome da pessoa é:”, nome); Fim.
Identificação do Algoritmo
Declaração das variáveis
Corpo do Algoritmo
Prof. Dr. Rafael Baptista, D.Sc.
Exemplo
Faça um programa que receba quatro números inteiros, calcule e mostre a soma desses números.
Algoritmo Exercicio2 Var n1, n2, n3, n4, soma : inteiro Inicio leia(n1, n2, n3, n4); soma n1 + n2 + n3 + n4; escreva(“O valor da soma é: ”, soma); Fim.
Prof. Dr. Rafael Baptista, D.Sc.
Linguagem de Programação
Prof. Dr. Rafael Baptista, D.Sc.
Linguagem de Programação
As origens do "C++“
Visando contornar os problemas de manutenção existentes nos grandes sistemas, em 1980 Bjarne Stroustrup adicionou o conceito de classes e de verificação de parâmetros de funções além de algumas outras facilidades à linguagem "C".A linguagem resultante foi chamada de "C com classes".
Em 1983/84 o "C com classes" foi extendido e re-implementado resultando na linguagem conhecida como "C++".
As maiores extensões foram as funções virtuais e a sobrecarga de operadores. Após mais alguns refinamentos a linguagem "C++“ tornou-se disponível ao público em 1985 e foi documentada no livro "The C++ Programming Language" (Addison Wesley 1986).
Prof. Dr. Rafael Baptista, D.Sc.
Linguagem de Programação
O que é o ANSI C++ O ANSI C++ é um comitê que estabelece os
conceitos básicos da linguagem C++. Principalmente os referentes a sintaxe de C++. Se você desenvolver um programa compatível com o ANSI C++, pode ter certeza de que ele pode ser compilado por diferentes compiladores de C++ para diferentes plataformas.
Em 1990 foi aprovado o ANSI/ISO 9899 que é o ANSI C. Em 1998 foi aprovado o ANSI/ISO C++.
--------------------------------------------------
ANSI = American National Standart Institute (Instituto Americano de Padrões e Medidas).
ISO = Organização de Padrões Internacionais.
Prof. Dr. Rafael Baptista, D.Sc.
Linguagem de Programação
Vantagens de C++?
A linguagem C++ é uma das melhores
linguagens de programação existentes por
conseguir agrupar uma funcionalidade que
envolve formulações altamente abstratas como
classes, que permitem um trabalho de alto nível
(trabalha-se a nível de conceitos) e formulações
de baixo nível, como o uso de chamadas de
interrupções que realizam tarefas altamente
específicas.
Prof. Dr. Rafael Baptista, D.Sc.
Linguagem de Programação
Importante
A linguagem C++ é case sensitive, ou seja,
diferencia letras maiúsculas (uppercase) de
letras minúsculas (lowercase).
Case sensitive é um termo da língua inglesa que significa sensível ao
tamanho, ou sensível a maiúsculas e minúsculas, ele é usado para
indicar que há diferenças entre letras com caixa alta e com caixa
normal. Métodos e comando em um programa ou um compilador, faz a
distinção entre os tamanhos da letras.
Origem: Wikipédia, a enciclopédia livre.
Prof. Dr. Rafael Baptista, D.Sc.
Linguagem de Programação
Programa estruturado escrito em C:
Uso os conceitos básicos de C, dados e
funções separados.
Programa estruturado escrito em C++:
Usa alguns conceitos de C++ como cin/cout,
switch, funções inline, const, referências. Ou
seja, usa alguns acréscimos de C++.
Prof. Dr. Rafael Baptista, D.Sc.
Compilação
Prof. Dr. Rafael Baptista, D.Sc.
Ferramentas (IDE´s)
Prof. Dr. Rafael Baptista, D.Sc.
IDE
IDE, do inglês Integrated Development
Environment ou Ambiente Integrado de
Desenvolvimento, é um programa de
computador que reúne características e
ferramentas de apoio ao desenvolvimento de
software com o objetivo de agilizar este processo.
Geralmente os IDEs facilitam a técnica de RAD
(de Rapid Application Development, ou
"Desenvolvimento Rápido de Aplicativos"), que
visa a maior produtividade dos desenvolvedores.
Prof. Dr. Rafael Baptista, D.Sc.
IDE
As características e ferramentas mais comuns
encontradas nos IDEs são:
Editor - edita o código-fonte do programa escrito na(s)
linguagem(ns) suportada(s) pela IDE;
Compilador (compiler) - compila o código-fonte do
programa, editado em uma linguagem específica e a
transforma em linguagem de máquina;
Linker - liga (linka) os vários "pedaços" de código-fonte,
compilados em linguagem de máquina, em um programa
executável que pode ser executado em um computador
ou outro dispositivo computacional.
Prof. Dr. Rafael Baptista, D.Sc.
IDE
As características e ferramentas mais comuns
encontradas nos IDEs são:
Depurador (debugger) - auxilia no processo de encontrar
e corrigir defeitos no código-fonte do programa, na
tentativa de aprimorar a qualidade de software;
Modelagem (modeling) - criação do modelo de classes,
objetos, interfaces, associações e interações dos
artefatos envolvidos no software com o objetivo de
solucionar as necessidades-alvo do software final.
Prof. Dr. Rafael Baptista, D.Sc.
IDE
As características e ferramentas mais comuns
encontradas nos IDEs são:
Geração de código - característica mais explorada em
Ferramentas CASE, a geração de código também é
encontrada em IDEs, contudo com um escopo mais
direcionado a templates de código comumente utilizados
para solucionar problemas rotineiros. Todavia, em
conjunto com ferramentas de modelagem, a geração
pode gerar todo ou praticamente todo o código-fonte do
programa com base no modelo proposto, tornando muito
mais rápido o processo de desenvolvimento e distribuição
do software;
Prof. Dr. Rafael Baptista, D.Sc.
IDE
As características e ferramentas mais comuns
encontradas nos IDEs são:
Distribuição (deploy) - auxilia no processo de criação do
instalador do software, ou outra forma de distribuição,
seja discos ou via internet.
Testes Automatizados (automated tests) - realiza testes
no software de forma automatizada, com base em scripts
ou programas de testes previamente especificados,
gerando um relatório, assim auxiliando na análise do
impacto das alterações no código-fonte. Ferramentas
deste tipo mais comuns no mercado são chamadas robôs
de testes.
Prof. Dr. Rafael Baptista, D.Sc.
IDE
As características e ferramentas mais comuns
encontradas nos IDEs são:
Refatoração (refactoring) - consiste na melhoria constante
do código-fonte do software, seja na construção de
código mais otimizado, mais limpo e/ou com melhor
entendimento pelos envolvidos no desenvolvimento do
software. A refatoração, em conjunto com os testes
automatizados, é uma poderosa ferramenta no processo
de erradicação de "bugs", tendo em vista que os testes
"garantem" o mesmo comportamento externo do software
ou da característica sendo reconstruída.
Prof. Dr. Rafael Baptista, D.Sc.
Layout de um programa
O desenvolvimento de um programa inicia com a definição do arquivo de projeto, a seguir são criados os arquivos de cabeçalho (*.h) e os arquivos de implementação (*.cpp).
Arquivo de projeto
O arquivo de projeto define quais arquivos fazem parte do programa e em que sequência devem ser compilados, ou seja, contém uma lista com os nomes dos arquivos de cabeçalho (*.h) e de implementação (*.cpp) e a forma como os mesmos serão compilados. A organização dos programas separando o código em diversos arquivos facilita a manutenção do programa e possibilita um maior entendimento da estrutura dos programas. Todo processo de compilação/recompilação fica mais rápido.
Prof. Dr. Rafael Baptista, D.Sc.
Layout de um programa
Arquivo de cabeçalho da classe (*.h)
A denição da classe é armazenada em arquivos
de cabeçalho com a extensão *.h
Arquivo de implementação da função main
(programa.cpp)
Você vai precisar de um arquivo com a denição
da função main. É um arquivo com a extensão
(*.cpp) e que usa as classes denidas pelo
programador. Veja o exemplo a seguir.
Prof. Dr. Rafael Baptista, D.Sc.
Layout de um programa
Prof. Dr. Rafael Baptista, D.Sc.
OlaMundo.cpp
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!" << endl;
cout << “Primeiro programa em C++“; return 0;
}
Declaração das bibliotecas
Declaração dos namespaces
Corpo do Programa
Prof. Dr. Rafael Baptista, D.Sc.
Implementação
OlaMundo.cpp
(código fonte)
Algoritmo Exemplo
(pseudocódigo)
#include <iostream>
using namespace std;
int main ()
{ // Início
cout << "Hello World!";
return 0;
} // Fim
Algoritmo Exemplo
Var
msg : caracter
Inicio
msg “Hello World!”;
escreva(msg);
Fim.
Prof. Dr. Rafael Baptista, D.Sc.
ANSI C++
Comentários no código
Comentário de Bloco
/**
* Comentário no código
* com múltiplas linhas.
*/
Comentário inline
// Comentário no código inline ou de uma linha
Prof. Dr. Rafael Baptista, D.Sc.
ANSI C++
Impressão na tela (console) cout << “Texto”; // e //
cout << variavel_de_armazenamento;
Exemplo:
cout << “Informe o primeiro nome:”;
cout << “Nome informado: ” + primeiroNome;
Nota: ○ endl : informa o fim da linha e retorno do carro.
Exemplo:
cout << “Nome: ” + primeiroNome << endl;
Prof. Dr. Rafael Baptista, D.Sc.
ANSI C (também suportado no C++)
Impressão na tela (console) printf(“%s” , variavelCharacter); // e //
printf(“%d” , variavelInteiro); // e //
printf(“%f” , variavelReal);
Exemplo:
printf(“Nome: %s”, nome);
printf(“Salario: %5.2f”, salario);
Nota: ○ %5.2f : Mostra o número real utilizando 5 casas para
a parte inteira e duas casas decimais.
Prof. Dr. Rafael Baptista, D.Sc.
ANSI C++
Leitura via teclado
Valores sem espaço cin >> variavel_de_armazenamento;
Exemplo:
cin >> primeiroNome;
Valores com espaço gets(variavel_de_armazenamento);
Exemplo:
gets(nomeCompleto);
Prof. Dr. Rafael Baptista, D.Sc.
Tipos de dados Tipo Faixa de valores Tamanho
(aproximado)
char -127 a 127 8 bits
string “texto” ----
unsigned char 0 a 255 8 bits
int -32.767 a 32.767 16 bits
unsigned int 0 a 65.535 16 bits
short int -32.767 a 32.767 16 bits
unsigned short int 0 a 65.535 16 bits
long int -2.147.483.647 a 2.147.483.647 32 bits
unsigned long int 0 a 4.294.967.295 32 bits
float 3.4 E -38 a 3.4 E +38 32 bits
double 1.7 E -308 a 1.7 E +308 64 bits
long double 3.4 E -4.932 a 1.1 E +4.932 80 bits
void Nenhum valor 0 bits Prof. Dr. Rafael Baptista, D.Sc.
Inicialização de variáveis
int main ()
{
float lap = 4.875, bor = 234.5425; int numero;
numero = 0;
char = ‘A’; // Erro! PQ?
string nome = “Rafael”;
return(0)
}
Prof. Dr. Rafael Baptista, D.Sc.
Campos na impressão
O objeto cout permite estabelecer o tamanho de um campo para a impressão (número de colunas que serão ocupadas)
Os manipuladores de tamanho de campos estão definidos no arquivo “iomanip” e são os seguintes:
setw : Seleciona o tamanho do próximo campo a ser impresso.
setprecision : Define o número de casas decimais a serem impressas para números em ponto flutuante (float).
setfill : Seleciona o caracter que deverá preencher as colunas em branco de um campo.
Prof. Dr. Rafael Baptista, D.Sc.
Exemplo #include <iostream>
#include<iomanip>
using namespace std;
void main() {
float lapis = 4.875, borracha = 234.542, caneta = 42.036;
float caderno = 8.01, fitas = 13.05;
cout << setfill('.'); // completa espacos com ponto
cout << setprecision(3); // 3 numeros na exibicao
cout << endl << "\n"; // Duas formas de pular linhas
cout << "Lapis " << setw(15) << lapis << endl;
cout << "Borracha " << setw(15) << borracha << endl;
cout << "Canetas " << setw(15) << caneta << endl;
cout << "Cadernos " << setw(15) << caderno << endl;
cout << "Fitas " << setw(15) << fitas << endl;
}
Prof. Dr. Rafael Baptista, D.Sc.
getchar() e getch()
Aguarda pressionar [ENTER]:
cout << "Pressione [ENTER] para continuar...";
getchar();
Aguarda pressionar qualquer tecla:
cout << "Pressione [ENTER] para continuar...";
getch();
Nota: #include <conio.h>
Prof. Dr. Rafael Baptista, D.Sc.