49
INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE GRANDE DO NORTE Algoritmos e Técnicas de Programação Programação É Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected] Curso de Tecnologia em Sistemas para Internet 09/07/2013

Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected] Curso de Tecnologia em Sistemas

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO

GRANDE DO NORTEGRANDE DO NORTE

Algoritmos e Técnicas de ProgramaçãoProgramação

ÉDocente: Éberton da Silva Marinhoe-mail: [email protected]

[email protected]

Curso de Tecnologia em Sistemas para Internet

09/07/2013

Page 2: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

SUMÁRIO

Breve histórico do C++CaracterísticasIntrodução a Linguagem de Programação C++

Page 3: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

Introdução à C++ e aos conceitos iniciais de conceitos iniciais de programação

Page 4: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

HISTÓRICO

A Linguagem C++ foi desenvolvida inicialmente por Bjarne Stroustrup na AT&T, de 1979 a 1983, à partir da linguagem C tendo como idéia à partir da linguagem C, tendo como idéia principal a de agregar o conceito de classes, de orientação à objetos, àquela linguagem. Razão ç j , q g gporque iniciamente chamava-se de “C com classes”.

Page 5: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

CARACTERÍSTICAS

Derivada da linguagem de programação CSuporta abstrações de dadosSuporta Programação Orientada a ObjetosSuporta programação genéricaSTL (Standard Library) é uma parte do padrão C++, e consiste em uma biblioteca de funções e

t t d d d t d il d C++ estruturas de dados que todo compilador C++ deve oferecerProvê as implementações mais comuns em um Provê as implementações mais comuns em um programa, e pode-se utilizá-la com diferentes tipos de dados. p

Page 6: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

PROGRAMAÇÃO ESTRUTURADA

Programação estruturada orienta os programadores para a criação de estruturas simples em seus programas usando subrotinas e simples em seus programas, usando subrotinas e as funções.Funções ou subrotinas são conjuntos de Funções ou subrotinas são conjuntos de instruções com um propósito específico, que permite o acesso ao mesmo através de uma interface bem definidaApesar de ter sido sucedida pela programação orientada por objetos, pode-se dizer que a programação estruturada ainda é muito influente uma vez que grande parte das pessoas influente, uma vez que grande parte das pessoas ainda aprendem programação através dela.

Page 7: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

PROGRAMAÇÃO ESTRUTURADA

Para a resolução de problemas relativamente mais i l di t ã t t d é simples e diretos a programação estruturada é

muito eficiente.Linguagens ainda extremamente relevantes nos Linguagens ainda extremamente relevantes nos dias de hoje, como Cobol PHP e Perl ainda utilizam o como Cobol, PHP e Perl ainda utilizam o paradigma estruturado(muito embora possuam suporte para a (muito embora possuam suporte para a orientação à objetos).

Page 8: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

CONSTRUÇÃO DE UM PROGRAMA EM C++

Page 9: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

ESTRUTURA TÍPICA DE UM PROGRAMA EMC++

Page 10: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

PRIMEIRO PROGRAMA EM C++// U i i C// Um primeiro programa em C++#include <iostream> // Inclui bibliotecas

int main() // Função principal chamada pelo sistema{ // Início do bloco de comandos{

// Escreve na saída padrão o texto entre aspasstd::cout << "Bem Vindos a Linguagem C++!\n“;

// Termina a execução do programa sem erros return 0;

} // Fim do bloco de comandos

Page 11: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

COMENTÁRIOS

Utilizamos comentários para documentar um programa e ajudar outras pessoas a entender o códigocódigoComentários são ignorados pelo compilador e não tem qualquer efeito sobre o programatem qualquer efeito sobre o programa

// Indica que o resto do código da linha é um // - Indica que o resto do código da linha é um comentário/* texto */ - Indica que o texto entre ‘/*’ e ‘*/’ é

11

/ texto / Indica que o texto entre / e / é um comentário. Com esta representação, o texto, e consequentemente o comentário pode ocupar 11várias linhas

Page 12: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

CABEÇALHO

o Pode incluir diretivas de processamento como include, using, define, etc.

o #include nome biblioteca: indica quais o c ude o e_b b oteca: d ca qua s bibliotecas serão utilizadas no programa#include <iostream>: permite que o o #include <iostream>: permite que o programa possa utilizar as funções de entrada e saída de dados (input e output entrada e saída de dados (input e output stream)

Page 13: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

PRIMEIRO PROGRAMA EM C++Todo programa que se deseja executar deve ter a declaração da função main(). É a partir da função main() que o programa começa sua execuçãomain() que o programa começa sua execuçãoAbre e fecha chave ({ }) indicam o bloco de execução da função main Determinam quando execução da função main. Determinam quando começa e quando termina a função main

Page 14: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

PRIMEIRO PROGRAMA EM C++O comando “std::cout” envia as informações passada pelo operador “<<” a saída padrão. No caso de nosso primeiro programa o conjunto de caso de nosso primeiro programa, o conjunto de caracteres "Bem Vindos a Linguagem C++!\n" será exibido na telaCada comando é terminado com um ponto e vírgula ( ; )

Page 15: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

PRIMEIRO PROGRAMA EM C++Para o comando std::cout << "Bem Vindos a Linguagem C++!\n";

O conjunto de caracteres é delimitado por aspas (“ ”)O conjunto de caracteres é delimitado por aspas ( )A sequência “\n” é um caractere de escape que funciona como uma quebra de linha para o programa

Todas as instruções são separadas por “;”O código “return 0;” dentro do main encerra o programa sem errossem erros

Page 16: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

COMPILAR UM CÓDIGO EM C++No prompt de comando (shell) digite

g++ -g -Wall -o nome_arquivo_exe nome_arquivo_cppOndeOnde

-Wall: ativa todas as mensagens de advertência (warnings)- o: indica ao compilador qual o nome do programa final

Exemplog++ -g -Wall -o prog01 prog01.cpp

Page 17: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

PRIMEIRO PROGRAMA EM C++Nosso programa gerará no prompt de comando do Linux (shell) a saída:

B Vi d Li C++!Bem Vindos a Linguagem C++!

Page 18: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

COMPILAR UM CÓDIGO EM C++

Page 19: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

TIPOS DE DADOS EM C++

Page 20: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

DECLARAÇÃO DE VARIÁVEIS

Declaração simples<tipo_dado> <nome_variavel>;E l i t Exemplo: int a;

D l ã últi lDeclaração múltipla<tipo_dado> <nome_variavel1>, <nome_variavel2>, ... , <nome variaveln>;... , <nome_variaveln>;Exemplo: double a, b, c;

Declação com inicialização<tipo_dado> <nome_variavel> = <valor>;p ;Exemplo: char c = ‘A’;

Page 21: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

CONVENÇÕES PARA DEFINIÇÃO DEÇ ÇVARIÁVEIS

Deve iniciar com uma letra seguida de letras, números e sublinhadoC++ dif i iú l d i ú lC++ diferencia maiúscula de minúscula

Page 22: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

CONVENÇÕES PARA DEFINIÇÃO DEÇ ÇVARIÁVEIS

Exemploint valor;i t l 1 l 2 lint valor1, valor2, ... , valorn;int valor = 2;int n123 343;int n123_343;

Page 23: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

PALAVRAS RESERVADAS

Page 24: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

TIPO INTEIRO (INT)

Exemplosint valor;int valor1, valor2;int valor1 = 10, valor2 = 9;

Page 25: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

TIPO PONTO FLUTUANTE (DOUBLE)

Exemplosfloat f;f = 5.65;double h = 0;

Page 26: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

TIPO CARACTERE (CHAR)Qualquer elemento de um conjunto de caracteres predefinidos no alfabetoI t t t é d Internamente o caractere é armazenado como um número

Exemploschar ch;char ch;char ch1, ch2, ... , chn;char ch = ‘A’;char ch A ;char ch = ‘a’;

Page 27: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

TIPO BOOLEANO (BOOL)Variáveis deste tipo assumem os valores verdadeiro (true) ou falso (false)

Exemplosb l bbool b;bool b1, b2, ... , bn;bool b = true;bool b = true;bool b = false;

Page 28: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

CONSTANTES

Constantes podem ser declaradas utilizando a palavra reservada const

Declaraçãot ti d d i l lconst <tipo_dado> <nome_variavel> = <valor>;

Ti d C t tTipos de ConstantesConstantes inteirasConstantes caracteresConstantes caracteresConstantes de ponto flutuanteConstantes de cadeiaConstantes de cadeia

Page 29: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

EXEMPLOS DE CONSTANTES

Constante inteira123456

Constante ponto flutuante82 347 63 47e 4 1 25E7 61 e+482. 347 .63 47e-4 1.25E7 61.e+4

Page 30: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

EXEMPLOS DE CONSTANTES

Constantes Caracteres‘a’ ‘b’ ‘C’

Page 31: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

EXEMPLOS DE CONSTANTES

Constante de cadeia“ABC” “America” “ABcdEf\nGHiJ\n”

Page 32: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

ENTRADA DE DADOS

Para pegar informações do usuário utiliza-se o std::cin juntamente com o operador >>

Exemplotd i i lstd::cin >> variavel;

std::cin >> variavel1 >> variavel2;

Page 33: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

PROGRAMA EM C++// U i i C// Um primeiro programa em C++#include <iostream> // Inclui bibliotecas

int main() // Função principal chamada pelo sistema{

int numero;int numero;// Escreve na saída padrão o texto entre aspasstd::cout << “Digite um valor\n“;// P i f ã di it d l á i t ib i iá l ú// Pega a informação digitada pelo usuário e atribui a variável númerostd::cin >> numero;// Escreve na saída padrão o número digitadostd::cout << “O número digitado foi: ” << numero << “\n“;// Termina a execução do programa sem errosreturn 0; // indica o fim do programareturn 0; // indica o fim do programa

}

Page 34: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

EXPRESSÕES

Page 35: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

OPERADORES

Operadores Unitários& * ++ --

O d bi á iOperadores binários+ - * /

O d t á iOperadores ternários( condição ? comando1 : comando2 )

Page 36: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

OPERADORES

Page 37: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

OPERADOR DE ATRIBUIÇÃO

Page 38: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

OPERADORES DE INCREMENTO EDECREMENTO

Page 39: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

OPERADORES ARITMÉTICOS

Page 40: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

EXERCÍCIO

Qual é o resultado das expressões abaixo?

6 + 2 * 3 – 4 / 2

5 * 5 + 5 / 6 – 2 + 1

7 * 10 – 5 % 3 * 4 + 9

Page 41: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

OPERADORES RELACIONAIS

Page 42: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

OPERADORES LÓGICOS

Page 43: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

OPERADORES LÓGICOS

Page 44: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

EXERCÍCIOS

Page 45: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

OPERADOR SIZEOF

Retorna o tamanho em bytes de um tido de dado ou variável

Exemploi f hsizeof char

Page 46: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

CONVERSÕES DE TIPOS

C l d i dC++ converte um valor de um tipo em outro quando:Se atribui um valor de um tipo aritmético a uma variável de outro tipo aritméticopSe comina tipos misturados em expressõesSe passam argumentos a funções

Page 47: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

CONVERSÕES DE TIPOS

Conversões implícitasExemploi t 3int n = 3;pi = 0.1415 + n;

Page 48: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

CONVERSÕES DE TIPOS

Conversões explícitasExemplo

Exemplo

Page 49: Algoritmos e Técnicas de Programação · Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia em Sistemas

DÚVIDAS

e-mail:[email protected]@ifrn.edu.br

Endereço eletrônico da disciplina: http://docente.ifrn.edu.br/ebertonmarinho

4949