Baixe o app para aproveitar ainda mais
Prévia do material em texto
INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 1 RESUMO C++ RESUMO DOS COMANDOS BÁSICOS EM ALGORITMOS E PASSANDO RESPECTIVAMENTE PARA C++: COMANDOS EM ALGORITMO COMANDO EM LINGUAGEM C++ inicio { fim } <- (comando de atribuição) = inteiro int caractere char – quando for somente um caractere string – quando for uma palavra char[quantidade] – quando for um conjunto de caracteres (vetor de char) real float lógico bool imprima ou escreva cout<< ( << Operador de Inserção) leia cin>> (>> Operador de Extração) se if senao else escolha ...caso switch ... case para for enquanto while faça...enquanto do...while 1- Tipos primitivos de dados a) int: para dados inteiros b) float ou double: para valores reais. Note que o double permite armazenar uma gama maior de reais positivos ou negativos. c) char: permite armazenar um e apenas um caractere (um dígito ou uma letra ou sinal de acentuação ou sinal de pontuação) string – quando for uma palavra char[quantidade] – quando for um conjunto de caracteres (vetor de char) d) bool: para valores lógicos true ou false e) void: sem valor 1.1- Os diferentes tipos de dados Existem vários tipos de variáveis, cada um corresponde a um tamanho máximo de números, caractere, ou verdade. Quanto mais o tipo pode conter de grandes números, mais ele ocupará espaço da memória. INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 2 2- VARIÁVEIS Variáveis e constantes são os elementos básicos que um programa manipula. Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado. Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário. Muitas linguagens de programação exigem que os programas contenham declarações que especifiquem de que tipo são as variáveis que ele utilizará e às vezes um valor inicial. Tipos podem ser, por exemplo: inteiros, reais, caracteres, etc. As expressões combinam variáveis e constantes para calcular novos valores. 2.1- Declaração de variáveis Regra geral : tipo <nome da variável>; tipo <nome da variável 1>, <nome da variável 2>; Exemplo : int i; float x, y; char c, f; INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 3 3- Constantes Assim como uma variável, uma constante também armazena um valor na memória do computador. Entretanto, esse valor não pode ser alterado: é constante. Para constantes é obrigatória a atribuição do valor. Existem duas formas básicas para declarar uma constante em C++: Usando #define Esta é uma maneira antiga de declarar constantes, mas funciona normalmente Você deverá incluir a diretiva de pré-processador #define antes do início do código: #include <iostream> using namespace std; #define PI 3.1415 A sintaxe para isso é (nesse caso, não coloque ponto-e-vírgula no final): #define [nome da constante] [valor] Usando const Usando const, a declaração não precisa estar no início do código. const int i = 500; // uma constante inteira que armazena o número 500. const double pi = 3.1415; // uma constante real que armazena o valor aproximado de pi. A sintaxe para const é: const [tipo] [nome] = [valor]; Regra geral: const <nome da constante> = <valor> ; Exemplo: const MAX = 100; 4- Operadores: 4.1 ATRIBUIÇÃO: A atribuição é caracterizada pelo sinal de = (igual). Regra geral: <variável> OAA equivale <expressão>; equivale <variável> = <variável> op (expressão)>; Sejam: OAA (operadores aritméticos de atribuição): +=, -=, *=, /=, %= OP (operadores aritméticos): + , - , *, / e % (resto da divisão de inteiros). INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 4 Observação: Os parênteses que envolvem a expressão são fundamentais. Operador Exemplo Explicação Atribui += c += 7 c = c + 7 10 a c -= d -= 4 d = d - 4 1 a d *= e *= 5 e = e * 5 20 a e /= f /= 3 f = f / 3 2 a f %= g %= 9 g = g % 9 3 a g Exemplos: Sejam int x,y,z; x += y; equivale x = x + y; x -= y + 10; equivale x = x – (y + 10); z /= x – y ; equivale z = z / (x – y); 4.2 ARITMÉTICOS Operador Operação realizada Exemplos + Adição int soma = 10+4; - subtração -3 int x = 10-4; * multiplicação / Divisão inteira (fornece o quociente da divisão entre dois inteiros) int X; X = 5/2; X valerá 2 / Divisão real (pelo menos um dos operandos deve ser real float f; f = 5.0/2; ou f = 5/2.0 ou f = 5.0/2.0; fornecerá 2.5 % Resto da divisão entre inteiros Int y; Y = 5%2; Y valerá 1 ++ Incremento -- Decremento O incremento, assim como o decremento, podem ser pré ou pós-fixados. Caso não haja atribuição, é indiferente que haja incremento/ decremento antes ou após a variável. Caso haja atribuição com ++ ou --, é importante identificar se os operadores estão antes (pré) ou após as variáveis (pós). INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 5 Conclusão: Considerando que haja atribuição: • Incremento/decremento pré-fixado: 1º) incrementa ou decrementa 2º) atribui • Incremento/decremento pós-fixado: 1º) atribui 2º) incrementa ou decrementa Operador Exemplo Explicação ++ ++a Incrementa a de 1 e depois usa o novo valor de a na expressão. (Pré- fixado) ++ a++ Usa o valor atual de a na expressão e depois incrementa a de 1. (Pós-fixado) -- --b Decrementa b de 1 e depois usa o novo valor de b na expressão. (Pré-fixado) -- b-- Usa o valor atual de b na expressão e depois decrementa b de 1. (Pós-fixado) Exemplo: INCREMENTO E DECREMENTO. Outro exemplo de linguagem econômica ao digitar código são os operadores de incremento (++) e os operadores de decremento (--). Eles aumentam ou reduzem 1 ao valor guardado na variável. São equivalentes a +=1 e a -=1, respectivamente. Assim: a++; a+=1; a=a+1; São todos equivalentes e suas funcionalidades são incrementar 1 no valor de a. // Pré-incremento e pós incremento #include <iostream> using namespace std; int main() { int c = 5; cout << c << "\n"; cout << c++ << "\n"; // pós-fixado cout << c << "\n"; c = 5; cout << c << "\n"; cout << ++c << "\n"; // pré-fixado cout << c << "\"; system("pause"); return 0; // finalização correta } Saída 5 5 6 5 6 6 INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 6 4.2.1 OPERADORES ARITMÉTICOS DE ATRIBUIÇÃO 4.3 RELACIONAIS Operador Significa > Maior >= Maior ou igual < Menor <= Menor ou igual == Igual != Diferente 4.4 LÓGICOS Operador Significa ! Não && E || Ou Podemos mostrar a seguinte tabela verdade: p q p e q p ou qfalso falso falso falso falso verdadeiro falso verdadeiro verdadeiro falso falso verdadeiro verdadeiro verdadeiro verdadeiro verdadeiro 5- COMANDOS 5.1 Saída/entrada de dados Não se esqueça de dar #include<iostream>. Neste caso, dê logo em seguida: using namespace std; 5.2 Saída de dados cout<<"sequência de caracteres"; cout<<"sequência de caracteres\n"; cout<<nome_variável; cout<<nome_variável<<"\n"; Exemplo: int x = 5, y = 2; cout << "Quociente : " << x/y << "\n"; INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 7 5.3 Entrada de dados cin>>nome da variável; Exemplo: Seja int idade; cin >> idade; Observação: Note o código especial \n que faz com que uma linha seja pulada. Existem outros códigos especiais, como por exemplo, o \t que dá um espaço equivalente à tecla TAB. 5.4- Entendendo o C++ ► #include <iostream> Comandos que começam um sinal de numeração (#) são diretivas do pré-processador. Elas não são linhas de código executáveis, mas indicações para o compilador. Nesse caso, o comando #include <iostream> diz ao pré-processador do compilador para incluir o arquivo de cabeçalho padrão iostream. Esse arquivo específico inclui as declarações da biblioteca básica de entrada-saída do C++, e está sendo usado porque suas funcionalidades serão usadas mais tarde nesse programa. ► using namespace std; Inclui objetos C ++ I / O e cin, cout. Finalmente, você pode introduzir apenas os membros específicos de um namespace usando uma declaração de acordo com a sintaxe, por exemplo: O comando para escrever na tela é: std::cout<<"Ola \n"; Mas usando a namespace basta escrever o comando assim: cout<<"Ola \n"; //não colocamos o std no comando Estamos utilizando o namespace STD. Um namespace permite dividir um programa em regiões que mantêm suas próprias tabelas de símbolos, estas regiões são chamadas de regiões declarativas. A ideia por trás dos namespaces é evitar que nomes declarados em um programa entrem em conflito com outros nomes definidos no mesmo programa, uma vez que os nomes de um namespace são independentes daqueles de outros. O que estamos realmente é importar os símbolos do namespace STD para o espaço de nomes global. Quando importamos um símbolo para o espaço de nomes global ele fica disponível a todo o código do programa. Se não importarmos um símbolo e outro namespace, para referenciá-lo precisaremos qualificá-lo com seu namespace da seguinte maneira: namespace::nome. Por exemplo: std::cin. ► int main() Essa linha corresponde ao início da declaração da função main. A função main é o ponto pelo qual todos os programas em C++ iniciam a execução. Não faz diferença se estiver no início, no fim, ou no meio do código – seu conteúdo é sempre o primeiro a ser executado quando um programa inicia. Além disso, pelo mesmo motivo, é obrigatório que todos os programas em C++ tenham uma função main. Depois de main há um par de parênteses () porque é uma função. Em C++ todas as funções são seguidas por um par de parênteses () que, opcionalmente, podem incluir argumento dentro deles. O conteúdo da função main segue imediatamente após sua declaração formal e é coberto entre chaves ({}), como em nosso exemplo. INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 8 ► Função system("pause") A maioria dos compiladores quando estão executando em modo gráfico fecha o console de saída assim que o programa finaliza. Isto impede que possamos ver o que aconteceu, principalmente quando o programa contém apenas umas poucas instruções. ► Retornando valor return 0; A instrução return faz com que a função main() termine e retorne o código que segue a instrução, nesse caso o 0. Essa é a maneira mais comum de terminar um programa que não encontrou nenhum erro durante sua execução. Como você verá em exemplos seguintes, todos os programas em C++ terminam com um comando parecido com esse. ► Comentários. Comentários são pedaços de código-fonte descartados do código pelo compilador. Eles não fazem nada. O objetivo deles é somente permitir que o programador insira notas ou descrições dentro do código-fonte. O C++ suporta duas maneiras para inserir comentários: // comentário de linha /* comentário de bloco */ O primeiro deles, o comentário de linha, descarta tudo desde onde o par de barras (//) é achado até o final daquela mesma linha. O segundo deles, o comentário de bloco, descarta tudo entre os caracteres /* e a próxima aparição dos caracteres */, com a possibilidade de incluir diversas linhas. Nós iremos adicionar comentários ao nosso segundo programa: /* meu exemplo de programa em C++ com mais de uma linha de comentários */ #include <iostream> int main () { cout << "Ola Mundo! \n"; //imprime na tela Ola Mundo! //imprime na tela Sou um programa em C++e pulo para linha de baixo cout << "Sou um programa em C++ \n"; system("pause"); return 0; } Ola Mundo! Sou um programa em C++ Se você incluir comentários dentro do código-fonte de seus programas sem usar as combinações de caracteres //, ou /* e */, o compilador ira entendê-los como se fossem instruções C++ e, na maioria das vezes, irá causar um ou mais mensagens de erro. INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 9 6.1 Condição/Seleção a) Simples if < condição> then <bloco de instruções> b)Composto if <condição> then <bloco de instruções> else <outro bloco de instruções> Exemplo: int x; cin >> x; // leitura de x if(x > 0) // se o valor de entrada for maior que zero cout << "Positivo ou nulo"; //executa se o resultado do teste for verdadeiro else cout << "Negativo ou nulo"; //executa se o resultado do teste for falso c) Múltiplos casos switch (expressão) { case opção1: comando1; break; case opção2: comando2; break; ... case opçãoN: comandoN; break; default: comandoN+1 } Observação: • O switch/case testa igualdades. Ou seja, testa se expressão é igual a opção1 ou se é igual a opção2 ou se é igual a opção N. • O comando break desvia a execução para fora do switch. • A opção default é opcional. Ela deve ser usada para o caso de nenhuma opção ser igual a expressão. • Em cada case é possível ter mais de uma instrução 6.2 Repetição a) while ( Significa enquanto) while ( teste lógico { Bloco de instruções; } Observação: Se o teste lógico for verdadeiro, o bloco de instruções dentro do while é executado. Caso contrário, o programa segue para as instruções fora do while. INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 10 b) for (Significa para) for ( inicialização ; teste_lógico ; incremento/decremento ) { Bloco de instruções } Observações: • A inicialização é feita apenas na 1ª vez. • Se o teste lógico for verdadeiro executa-se o corpo do for, caso contrário segue-se para as instruções fora do for. • Após se executar as instruções dentro do for, segue-se para a parte dos incrementos/decrementos, para então em seguida, ir para o teste lógico, que se verdadeiro fará com que o bloco de instruções dentro do for seja executado. • Após a execuçãodo bloco de instruções dentro do for, sempre se seguirá para a parte dos incremento/decremento e depois para a parte do teste lógico. c) do ... while (Significa faça ... enquanto) do { Bloco de instruções } while ( teste lógico ); Observação: Este comando faz para depois testar. Se o teste lógico for verdadeiro, a repetição é realizada. Senão, a execução vai para a 1ª instrução após o do ... while. Comentário geral: Todo bloco de instrução (conjunto com 2 ou mais instruções) deve estar entre chaves. Isso ocorre no: if, if/else, while, for, do ... while ... 7- MATRIZES (Estrutura de dados homogêneas) Uma matriz é uma coleção de variáveis de mesmo tipo, acessíveis com um único nome e armazenados contiguamente na memória. Conjunto de dados do mesmo tipo com tamanho pré-definido. 7.1- MATRIZES UNIDIMENSIONAIS (vetor) ►A individualização de cada variável de um vetor é feita através do uso de índices. ►Os Vetores são matrizes de 1 só dimensão. ►A individualização de cada variável de um vetor é feita através do uso de índices. INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 11 Declaração de Matrizes int Vetor[5]; // declara um vetor de 5 posições Acesso aos elementos do vetor Para acessar os elementos de um vetor usam-se índices. O índice define a posição da variável dentro do vetor. Em todos os vetores tem o primeiro elemento na posição 0(zero). Assim, se tomarmos "K" como sendo o tamanho do vetor a última posição é a de índice "K-1". Vetor[0] = 4; // Coloca 4 na primeira posição de "Vetor" Vetor[4] = 8; // Coloca 8 na última posição de "Vetor" Uso de Constantes para definir o tamanho de um vetor #define TAM_MAX 10 double VetReais[TAM_MAX]; Trecho de Leitura (entrada) dos dados de um vetor #define TAM_MAX 10 double Vet1[TAM_MAX]; for(i=0; i<TAM_MAX; i++) { cout<<”Digite Valor: “; cin>>vet1[i]; } Trecho de Escrita (saída) dos dados de um vetor #define TAM_MAX 10 double Vet1[TAM_MAX]; for(i=0; i<TAM_MAX; i++) cout<<vet1[i]<<”\n”; 7.2- MATRIZES BIDIMENSIONAIS (matriz) Declaração de Matrizes /* declara uma matriz de 5 linhas e 3 colunas, o primeiro colchete representa linha e o segundo colchete representa a coluna.*/ int Matriz[5][3]; INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 12 float M[2][8]; //Declara uma matriz M com dua linhas e oito colunas Representação: NOTA: Cada componente é acessado pela linha e pela coluna, nesta ordem. A declaração da matriz (ou array) bidimensional é efetuada com dois colchetes, que informam a quantidade de elementos que a matriz poderá conter, sendo o primeiro representando as linhas e o segundo representando as colunas, podendo ser atribuído valores aos itens em sua declaração inicial ou, atribuir valores durante a demanda do processamento da aplicação de acordo com as necessidades do algoritmo. Acesso aos elementos do vetor Para acessar os elementos de um vetor usam-se índices. O índice define a posição da variável dentro do vetor. Para acessar um valor específico dentro de uma matriz, utilizamos a variável seguido do conchete e a posição desejada, informada com um valor inteiro positivo. Em todos os vetores tem o primeiro elemento na posição 0(zero). Assim, se tomarmos "K" como sendo o tamanho do vetor a última posição é a de índice "K-1". /* Coloca 4 na primeira posição da matriz, ou seja, na linha zero e coluna zero */ Vetor[0][0] = 4; /* Coloca 8 na linha 4 e coluna 2 Vetor[4][2] = 8; INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 13 Trecho de Leitura (entrada) dos dados de uma matriz floatM[2][3]; // M possui 2 linhas e 3 colunas // Para ler os dados de M for (inti = 0; i < 2; i++) for (intj = 0; j < 3; j++) { cout<<”Digite Valor: “; cin>> M[i][j]; } Trecho de escrita (saída) dos dados de uma matriz // Para imprimir os dados de M for (inti = 0; i < 2; i++) { for (intj = 0; j < 3; j++) cout<< M[i][j] << “ “; cout<< endl; // Note que está fora do 2º. for } 7.3- VETOR DE CARACTERES ►Tem um tratamento particular, diferente do vetor de numéricos. ►Para entrada de dados: usa-se gets (Se for somente um nome, não tem estrutura de repetição - sem for) ►Para saída de dados: usa-se cout (Se for somente um nome, não tem estrutura de repetição - sem for) Exemplo: char nome[8] ; Nota: Todo vetor de char é finalizado com „\0‟. Depois deste caractere só há “lixo”. INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 14 #include<iostream> using namespace std; #define TAM 40 //define uma constante intmain() { char nome[TAM]; //declaração do vetor de char, equivale a char nome[40]; cout<< "Digite seu nome e sobrenome : "; gets(nome); // Lê um vetor de char cout<< "Foi digitado " << nome << endl; } // fim da main INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 15 EXTRAS COMO INSERIR CORES NA TELA BRANCO-E-PRETA DATELA DO PRONPT? Para tal você precisa digitar a seguinte chamada ao sistema: system(“color fc”); Onde f é a cor de fundo da tela e c e a cor do texto, em Hexadecimal.Lembrando em hexa 10=A;11=B;12=C;13=D;14=E;15=F. Para ter uma tela cor preta e texto verde a chamada ficaria assim: #include<stdio.h> #include<iostream> using namespace std: int main() { system(“color OA”); // aqui o seu programa system(“pause”); } A tabela de cores esta definida: COR VALOR COR VALOR PRETO 0 AZUL 1 VERDE 2 CIANO 3 VERMELHO 4 MAGENTA 5 MARROM 6 CINZA CLARO 7 CINZA ESCURA 8 AZUL CLARO 9 VERDE CLARO 10 CIANO CLARO 11 VERMELHO CLARO 12 MAGENTA CLARO 13 AMARELO 14 BTANCO 15 INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Professora: Gellars Tavares INTRODUÇÃO À PROGRAMAÇÃO – Professora Gellars Tavares – ano 2017 16 COMO INSERIR ACENTOS NAS PALAVRAS? #include<iostream> #include <stdio.h> #include <locale.h> using namespace std; int main() { setlocale(LC_ALL, "Portuguese"); cout<<"Olá mundo! \n\n"; system("pause"); return 0; } COMENTÁRIOS GERAIS: 1. A linguagem C++ é case sensitive, ou seja, faz distinção entre maiúsculas e minúsculas. 2. Os comentários devem estar entre /* e */ ou após //. Este último permite comentário de uma linha, ao passo que o primeiro permite alongar o comentário por mais linhas. 3. Ao dar #include<iostream>,a busca pelo arquivo iostream ocorrerá direto nos diretórios das include, ao passo que, se usarmos #include “iostream”, a busca ocorrerá primeiro no diretório corrente e depois no diretório das include.
Compartilhar