O documento apresenta informações sobre um professor chamado Rafael Baptista, incluindo seu email, redes sociais e títulos acadêmicos. O conteúdo da aula inclui definições matemáticas, algoritmos, linguagens de programação e exemplos de programas.
1. Prof. Rafael Baptista
E-mail: rafael.baptista@estacio.br
Twitter: @rafaelpbaptista
Facebook: facebook.com/rpbaptista
Prof. Dr. Rafael Baptista, D.Sc.
2. Ô abestado!!!
Bresta atenção bessoal, que hoje
tem matéria bra garaio.
Prof. Dr. Rafael Baptista, D.Sc.
3. Ô abestado!!!
E nós estamos de olho!!!
Prof. Dr. Rafael Baptista, D.Sc.
4. Ô abestado!!!
Entendeu abestado?!?!
Prof. Dr. Rafael Baptista, D.Sc.
5. 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.
6. Bibliografia Básica
Lógica de programação e estrutura Fundamentos da Programação de
de dados Computadores
1ª. Edição/2003 1ª. Edição/2002
Prof. Dr. Rafael Baptista, D.Sc.
7. Operadores Matemáticos
Função Operador Operandos Resultado
Soma + XeY resultado x + y
Subtração - XeY resultado x – y
Multiplicação * XeY resultado x * y
Divisão / XeY resultado x / y
Quociente inteiro div XeY resultado x div y
Resto da divisão mod XeY resultado x mod y
pow() resultado pow(x,y)
Potenciação ou XY ou
** resultado x**y
Raiz Quadrada sqrt() X resultado sqrt(x)
Prof. Dr. Rafael Baptista, D.Sc.
8. Montagem de Algoritmos
Identificação do Algoritmo
Algoritmo Exemplo
Declaração das variáveis
Var
nome, cargo : caracter
numeroPessoas, totalPessoas : inteiro
salario : real
Inicio Corpo do Algoritmo
numeroPessoas 1;
totalPessoas 0;
...
leia(nome, cargo);
escreva(“O nome da pessoa é:”, nome);
Fim.
Prof. Dr. Rafael Baptista, D.Sc.
9. 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.
11. 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.
12. 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.
13. 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.
14. 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.
15. 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.
18. 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.
19. 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.
20. 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.
21. 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.
22. 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.
23. 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.
24. 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.
25. 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.
26. Layout de um programa
Prof. Dr. Rafael Baptista, D.Sc.
27. OlaMundo.cpp
Declaração das bibliotecas
#include <iostream>
Declaração dos namespaces
using namespace std;
Corpo do Programa
int main ()
{
cout << "Hello World!" << endl;
cout << “Primeiro programa em C++“;
return 0;
}
Prof. Dr. Rafael Baptista, D.Sc.
28. Implementação
#include <iostream> Algoritmo Exemplo
using namespace std; Var
msg : caracter
int main ()
{ // Início Inicio
cout << "Hello World!"; msg “Hello World!”;
return 0; escreva(msg);
} // Fim Fim.
OlaMundo.cpp Algoritmo Exemplo
(código fonte) (pseudocódigo)
Prof. Dr. Rafael Baptista, D.Sc.
29. 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.
30. 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.
31. 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.
32. 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.
33. 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.
34. 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.
35. 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.