SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
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

Mais procurados

MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4 MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4 Rogério Moraes de Carvalho
 
Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1D M
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem cEugenio Caetano
 
MODELAGEM DE FICHA DE ATENDIMENTO PARA CONSULTA OFTALMOLOGICA USANDO ARQUÉTIP...
MODELAGEM DE FICHA DE ATENDIMENTO PARA CONSULTA OFTALMOLOGICA USANDO ARQUÉTIP...MODELAGEM DE FICHA DE ATENDIMENTO PARA CONSULTA OFTALMOLOGICA USANDO ARQUÉTIP...
MODELAGEM DE FICHA DE ATENDIMENTO PARA CONSULTA OFTALMOLOGICA USANDO ARQUÉTIP...Paulo Rogério Rades
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionaisDérick Platini
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Kratos879
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11Luis Ferreira
 
Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12Luis Ferreira
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem CDaniel Barão
 
Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Yuri Camelo
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06thomasdacosta
 

Mais procurados (20)

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

Destaque

Aula 5 - Programação 1
Aula 5 - Programação 1Aula 5 - Programação 1
Aula 5 - Programação 1Isaac Barros
 
Apresentação wxWidgets
Apresentação wxWidgetsApresentação wxWidgets
Apresentação wxWidgetsRenzo Petri
 
Aula c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dadosJean Martina
 
Minicurso wxWidgets
Minicurso wxWidgetsMinicurso wxWidgets
Minicurso wxWidgetsRenzo Petri
 
Bancos de dados No-SQL e afins
Bancos de dados No-SQL e afinsBancos de dados No-SQL e afins
Bancos de dados No-SQL e afinsdcarneir
 
Vcl For The Web - Palestra sobre desenvolvimento web em Delphi
Vcl For The Web - Palestra sobre desenvolvimento web em DelphiVcl For The Web - Palestra sobre desenvolvimento web em Delphi
Vcl For The Web - Palestra sobre desenvolvimento web em DelphiWecsley Fey
 
Introdução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosIntrodução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosGabriel Giordano Medina
 
El ZoolóGico ,La Jungla En La
El ZoolóGico ,La Jungla En LaEl ZoolóGico ,La Jungla En La
El ZoolóGico ,La Jungla En Laromina.garcia
 
Cartas reais para_deus_escritas_por_criancas
Cartas reais para_deus_escritas_por_criancasCartas reais para_deus_escritas_por_criancas
Cartas reais para_deus_escritas_por_criancasRodrigo Soares
 
Hospital das clínicas de niterói escolha de acreditação - caso de ensino - ...
Hospital das clínicas de niterói   escolha de acreditação - caso de ensino - ...Hospital das clínicas de niterói   escolha de acreditação - caso de ensino - ...
Hospital das clínicas de niterói escolha de acreditação - caso de ensino - ...Nikiforos Junior
 
El yo como punto de partida
El yo como punto de partidaEl yo como punto de partida
El yo como punto de partidaRoberto Ritte
 
Emol Final
Emol FinalEmol Final
Emol Finalcocou
 
Memorial de amicus curiae apresentado pela clínica uerj direitos
Memorial de amicus curiae apresentado pela clínica uerj direitosMemorial de amicus curiae apresentado pela clínica uerj direitos
Memorial de amicus curiae apresentado pela clínica uerj direitosLeonardo Barbosa
 

Destaque (20)

Aula 5 - Programação 1
Aula 5 - Programação 1Aula 5 - Programação 1
Aula 5 - Programação 1
 
Apresentação wxWidgets
Apresentação wxWidgetsApresentação wxWidgets
Apresentação wxWidgets
 
Aula c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dados
 
Minicurso wxWidgets
Minicurso wxWidgetsMinicurso wxWidgets
Minicurso wxWidgets
 
Bancos de dados No-SQL e afins
Bancos de dados No-SQL e afinsBancos de dados No-SQL e afins
Bancos de dados No-SQL e afins
 
Vcl For The Web - Palestra sobre desenvolvimento web em Delphi
Vcl For The Web - Palestra sobre desenvolvimento web em DelphiVcl For The Web - Palestra sobre desenvolvimento web em Delphi
Vcl For The Web - Palestra sobre desenvolvimento web em Delphi
 
Introdução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosIntrodução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de Jogos
 
Organizar Viaje
Organizar ViajeOrganizar Viaje
Organizar Viaje
 
El ZoolóGico ,La Jungla En La
El ZoolóGico ,La Jungla En LaEl ZoolóGico ,La Jungla En La
El ZoolóGico ,La Jungla En La
 
Cartas reais para_deus_escritas_por_criancas
Cartas reais para_deus_escritas_por_criancasCartas reais para_deus_escritas_por_criancas
Cartas reais para_deus_escritas_por_criancas
 
Hospital das clínicas de niterói escolha de acreditação - caso de ensino - ...
Hospital das clínicas de niterói   escolha de acreditação - caso de ensino - ...Hospital das clínicas de niterói   escolha de acreditação - caso de ensino - ...
Hospital das clínicas de niterói escolha de acreditação - caso de ensino - ...
 
El yo como punto de partida
El yo como punto de partidaEl yo como punto de partida
El yo como punto de partida
 
Emol Final
Emol FinalEmol Final
Emol Final
 
Barrientos D
Barrientos DBarrientos D
Barrientos D
 
Colima
ColimaColima
Colima
 
Memorial de amicus curiae apresentado pela clínica uerj direitos
Memorial de amicus curiae apresentado pela clínica uerj direitosMemorial de amicus curiae apresentado pela clínica uerj direitos
Memorial de amicus curiae apresentado pela clínica uerj direitos
 
Confiando En El SeñOr V
Confiando En El SeñOr VConfiando En El SeñOr V
Confiando En El SeñOr V
 
Imposible.
Imposible.Imposible.
Imposible.
 
Empresa economia
Empresa economiaEmpresa economia
Empresa economia
 
Comunidades virtuales
Comunidades virtualesComunidades virtuales
Comunidades virtuales
 

Semelhante a Algoritomos aula 3 rafael

Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicaçõesnataferraz
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçaossuserc6132d
 
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Alex Camargo
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
Cartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdfCartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdfEdkallenn Lima
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonFabio Spanhol
 
P10 dev studio
P10 dev studioP10 dev studio
P10 dev studioPirata Mao
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02profwtelles
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para LinuxChris x-MS
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosRafael Martins
 
Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshopguestd37c23
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisRogerio Fontes
 
Php Conf08 Refactoring
Php Conf08 RefactoringPhp Conf08 Refactoring
Php Conf08 RefactoringWildtech
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 

Semelhante a Algoritomos aula 3 rafael (20)

Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicações
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçao
 
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
Cartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdfCartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdf
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Minicurso de TDD
Minicurso de TDDMinicurso de TDD
Minicurso de TDD
 
Calourada2010
Calourada2010Calourada2010
Calourada2010
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com Python
 
P10 dev studio
P10 dev studioP10 dev studio
P10 dev studio
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para Linux
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de Algoritmos
 
Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshop
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Php Conf08 Refactoring
Php Conf08 RefactoringPhp Conf08 Refactoring
Php Conf08 Refactoring
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Gt 2 – ferramentas
Gt 2 – ferramentasGt 2 – ferramentas
Gt 2 – ferramentas
 

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.