SlideShare uma empresa Scribd logo
Prof. Rafael Baptista
 E-mail: rafael.baptista@estacio.br
          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              Fundamentos da Programação de
de dados                                       Computadores
1ª. 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 / 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.
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.
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
                                              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.
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.
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.

Mais conteúdo relacionado

PDF
Introdução a linguagem c karen lowhany
PPTX
TDC2014 SP - C/C++ - Modularização de Código C
PDF
Linguagem C (UFRPE)
PDF
Apostila de-introdução-à-linguagem-c
PDF
Linguagem c
PDF
Aula 1 | Introdução a C++
PDF
Introduçãso a linguagem c
PDF
Conceitos e técnicas de programação apresentação
Introdução a linguagem c karen lowhany
TDC2014 SP - C/C++ - Modularização de Código C
Linguagem C (UFRPE)
Apostila de-introdução-à-linguagem-c
Linguagem c
Aula 1 | Introdução a C++
Introduçãso a linguagem c
Conceitos e técnicas de programação apresentação

Mais procurados (20)

PPT
Linguagem C clecioamerico
ODP
Paradigma funcional
PPT
Estruturas
PPTX
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
PDF
Apresentação Linguagem C
PPTX
Linguagem de programação C# 4 e 5
PPT
Curso de Linguagem C
PDF
Fundamentos de Programação
PDF
Tecnicas programacao i_c_p1
 
PPTX
PPTX
5. introducao a linguagem c
PDF
MODELAGEM DE FICHA DE ATENDIMENTO PARA CONSULTA OFTALMOLOGICA USANDO ARQUÉTIP...
PDF
Algoritmos computacionais
ODP
Matando o Java e Mostrando o Python
PDF
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
PPT
Linguagens de programação 12º M11
PPT
Linguagens de programação 12º M12
PDF
Apostila de Linguagem C
PPTX
Programando em C++ // Estrutura Básica
PPTX
Programação Estruturada 2 - Aula 06
Linguagem C clecioamerico
Paradigma funcional
Estruturas
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
Apresentação Linguagem C
Linguagem de programação C# 4 e 5
Curso de Linguagem C
Fundamentos de Programação
Tecnicas programacao i_c_p1
 
5. introducao a linguagem c
MODELAGEM DE FICHA DE ATENDIMENTO PARA CONSULTA OFTALMOLOGICA USANDO ARQUÉTIP...
Algoritmos computacionais
Matando o Java e Mostrando o Python
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Linguagens de programação 12º M11
Linguagens de programação 12º M12
Apostila de Linguagem C
Programando em C++ // Estrutura Básica
Programação Estruturada 2 - Aula 06
Anúncio

Destaque (20)

PPTX
Aula 5 - Programação 1
PDF
Apresentação wxWidgets
ODP
Aula c++ estruturas de dados
PPTX
Minicurso wxWidgets
ODP
Bancos de dados No-SQL e afins
PPT
Vcl For The Web - Palestra sobre desenvolvimento web em Delphi
PDF
Introdução ao Desenvolvimento de Jogos
PDF
Organizar Viaje
PPT
El ZoolóGico ,La Jungla En La
PDF
Cartas reais para_deus_escritas_por_criancas
PDF
Hospital das clínicas de niterói escolha de acreditação - caso de ensino - ...
PPT
El yo como punto de partida
PPT
Emol Final
PPT
Barrientos D
PPTX
PDF
Memorial de amicus curiae apresentado pela clínica uerj direitos
DOC
Confiando En El SeñOr V
PPS
Imposible.
PPTX
Empresa economia
PPT
Comunidades virtuales
Aula 5 - Programação 1
Apresentação wxWidgets
Aula c++ estruturas de dados
Minicurso wxWidgets
Bancos de dados No-SQL e afins
Vcl For The Web - Palestra sobre desenvolvimento web em Delphi
Introdução ao Desenvolvimento de Jogos
Organizar Viaje
El ZoolóGico ,La Jungla En La
Cartas reais para_deus_escritas_por_criancas
Hospital das clínicas de niterói escolha de acreditação - caso de ensino - ...
El yo como punto de partida
Emol Final
Barrientos D
Memorial de amicus curiae apresentado pela clínica uerj direitos
Confiando En El SeñOr V
Imposible.
Empresa economia
Comunidades virtuales
Anúncio

Semelhante a Algoritomos aula 3 rafael (20)

ODP
Linguagem C e Dev-C++ Algumas Explicações
PDF
Conceito de funçao e modularizaçao
PDF
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
PDF
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
PDF
Conceitos e técnicas de programação aula 2
PDF
Cartilha de R para Estatística e Data Science.pdf
PPT
Mini Curso de C
PPT
Minicurso de TDD
ODP
Calourada2010
PPT
Introdução a conceitos e a Praticas de Programação
PPTX
Automação de Aplicativos: Scripting com Python
PDF
P10 dev studio
PDF
Linguagem c wellington telles - aula 02
PPTX
Isc aula 7
PPTX
Estrutura de Dados em Java (Introdução)
DOC
Aula de C para Linux
PDF
LIA - Linguagem Interpretada de Algoritmos
PPT
Refactory Worshop
PPT
introdução a algoritmos - logica e programação representação
PPTX
Clean code @rogeriofontes-techfriday-everis
Linguagem C e Dev-C++ Algumas Explicações
Conceito de funçao e modularizaçao
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Conceitos e técnicas de programação aula 2
Cartilha de R para Estatística e Data Science.pdf
Mini Curso de C
Minicurso de TDD
Calourada2010
Introdução a conceitos e a Praticas de Programação
Automação de Aplicativos: Scripting com Python
P10 dev studio
Linguagem c wellington telles - aula 02
Isc aula 7
Estrutura de Dados em Java (Introdução)
Aula de C para Linux
LIA - Linguagem Interpretada de Algoritmos
Refactory Worshop
introdução a algoritmos - logica e programação representação
Clean code @rogeriofontes-techfriday-everis

Algoritomos aula 3 rafael

  • 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.
  • 10. Linguagem de Programação 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.
  • 16. Compilação Prof. Dr. Rafael Baptista, D.Sc.
  • 17. Ferramentas (IDE´s) 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.
  • 36. 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.
  • 37. 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.