+ All Categories
Home > Documents > Algoritomos aula 3 rafael

Algoritomos aula 3 rafael

Date post: 30-Jun-2015
Category:
Upload: hugodrocha
View: 296 times
Download: 0 times
Share this document with a friend
Description:
algoritimos aula
37
Prof. Rafael Baptista E-mail: [email protected] Twitter: @rafaelpbaptista Facebook: facebook.com/rpbaptista Prof. Dr. Rafael Baptista, D.Sc.
Transcript
Page 1: Algoritomos aula 3 rafael

Prof. Rafael Baptista E-mail: [email protected]

Twitter: @rafaelpbaptista

Facebook: facebook.com/rpbaptista

Prof. Dr. Rafael Baptista, D.Sc.

Page 2: Algoritomos aula 3 rafael

Ô abestado!!!

Bresta atenção bessoal, que hoje

tem matéria bra garaio.

Prof. Dr. Rafael Baptista, D.Sc.

Page 3: Algoritomos aula 3 rafael

Ô abestado!!!

E nós estamos de olho!!!

Prof. Dr. Rafael Baptista, D.Sc.

Page 4: Algoritomos aula 3 rafael

Ô abestado!!!

Entendeu abestado?!?!

Prof. Dr. Rafael Baptista, D.Sc.

Page 5: Algoritomos aula 3 rafael

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.

Page 6: Algoritomos aula 3 rafael

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.

Page 7: Algoritomos aula 3 rafael

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.

Page 8: Algoritomos aula 3 rafael

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.

Page 9: Algoritomos aula 3 rafael

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.

Page 10: Algoritomos aula 3 rafael

Linguagem de Programação

Prof. Dr. Rafael Baptista, D.Sc.

Page 11: Algoritomos aula 3 rafael

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.

Page 12: Algoritomos aula 3 rafael

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.

Page 13: Algoritomos aula 3 rafael

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.

Page 14: Algoritomos aula 3 rafael

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.

Page 15: Algoritomos aula 3 rafael

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.

Page 16: Algoritomos aula 3 rafael

Compilação

Prof. Dr. Rafael Baptista, D.Sc.

Page 17: Algoritomos aula 3 rafael

Ferramentas (IDE´s)

Prof. Dr. Rafael Baptista, D.Sc.

Page 18: Algoritomos aula 3 rafael

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.

Page 19: Algoritomos aula 3 rafael

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.

Page 20: Algoritomos aula 3 rafael

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.

Page 21: Algoritomos aula 3 rafael

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.

Page 22: Algoritomos aula 3 rafael

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.

Page 23: Algoritomos aula 3 rafael

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.

Page 24: Algoritomos aula 3 rafael

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.

Page 25: Algoritomos aula 3 rafael

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.

Page 26: Algoritomos aula 3 rafael

Layout de um programa

Prof. Dr. Rafael Baptista, D.Sc.

Page 27: Algoritomos aula 3 rafael

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.

Page 28: Algoritomos aula 3 rafael

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.

Page 29: Algoritomos aula 3 rafael

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.

Page 30: Algoritomos aula 3 rafael

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.

Page 31: Algoritomos aula 3 rafael

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.

Page 32: Algoritomos aula 3 rafael

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.

Page 33: Algoritomos aula 3 rafael

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.

Page 34: Algoritomos aula 3 rafael

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.

Page 35: Algoritomos aula 3 rafael

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.

Page 36: Algoritomos aula 3 rafael

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.

Page 37: Algoritomos aula 3 rafael

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.


Recommended