• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Algoritomos aula 3 rafael
 

Algoritomos aula 3 rafael

on

  • 359 views

algoritimos aula

algoritimos aula

Statistics

Views

Total Views
359
Views on SlideShare
359
Embed Views
0

Actions

Likes
0
Downloads
20
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Algoritomos aula 3 rafael Algoritomos aula 3 rafael Presentation Transcript

    • Prof. Rafael Baptista E-mail: rafael.baptista@estacio.br Twitter: @rafaelpbaptistaFacebook: facebook.com/rpbaptistaProf. 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ásicaLógica de programação e estrutura Fundamentos da Programação dede dados Computadores1ª. Edição/2003 1ª. Edição/2002 Prof. Dr. Rafael Baptista, D.Sc.
    • 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 / yQuociente inteiro div XeY resultado  x div yResto da divisão mod XeY resultado  x mod y pow() resultado  pow(x,y) Potenciação ou XY ou ** resultado  x**yRaiz Quadrada sqrt() X resultado  sqrt(x) Prof. Dr. Rafael Baptista, D.Sc.
    • Montagem de Algoritmos Identificação do AlgoritmoAlgoritmo Exemplo Declaração das variáveisVar nome, cargo : caracter numeroPessoas, totalPessoas : inteiro salario : realInicio Corpo do Algoritmo numeroPessoas  1; totalPessoas  0; ... leia(nome, cargo); escreva(“O nome da pessoa é:”, nome);Fim. 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 Exercicio2Var n1, n2, n3, n4, soma : inteiroInicio 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 comoclasses, 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 caixanormal. 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 Declaração das bibliotecas#include <iostream> Declaração dos namespacesusing namespace std; Corpo do Programaint main (){ cout << "Hello World!" << endl; cout << “Primeiro programa em C++“; return 0;} Prof. Dr. Rafael Baptista, D.Sc.
    • Implementação#include <iostream> Algoritmo Exemplousing namespace std; Var msg : caracterint 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.
    • 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áveisint 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.