Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 ALGOP – Algoritmos e Programação Aula 2 – Conceitos iniciais (fundamentos de programação) + Fundamentos de programação + As linguagens de programação C e C++ + Utilizando variáveis e constantes no programa + Instruções de entrada e saida de dados em C/C++ 2 ALGOP – Algoritmos e Programação Fundamentos de Programação Um programa pode ser entendido como uma sequência organizada de instruções que comandam o funcionamento da máquina e derterminam a maneira como devem ser tratados os dados. Um programa contém um ou mais algoritmos, que estabelecem os passos a serem seguidos para a resolução de um determinado problema, ou seja, “a inteligência para a resolução do problema em questão”. Ao construirmos um programa, utilizamos os conceitos de estruturas de dados (que manipulam os dados referentes as informações) e estruturas de controle (que manipulam as ações para a transfomação dos dados). Os dados correspondem a porções de informações a serem processadas pelo computador. 3 ALGOP – Algoritmos e Programação Linguagem de programação C/C++ Para construirmos nossos programas, utilizaremos elementos básicos das linguagens C e C++ … Frequentemente os nomes aparecem agrupados, passando a idéia de que se trata de uma única linguagem … :-) Linguagem C: criada entre 1969 e 1973, é uma linguagem de programação compilada, de uso geral, estruturada, procedural e imperativa … Linguagem C++: criada na década de 80 (1983), é uma linguagem de programação de uso geral, “orientada a objetos” … As diferenças entre elas são mais visíveis para os programadores … No nosso curso, utilizaremos estruturas básicas comuns as duas e alguns elementos particulares de cada uma … :-) 4 ALGOP – Algoritmos e Programação Palavras reservadas da linguagem de programação C/C++ auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 5 ALGOP – Algoritmos e Programação Formato de um programa em C/C++ // diretivas de compilação #include <stdio.h> #include <conio.h> // módulo ou função principal // ponto de entrada da aplicação int main() { // início do bloco principal // declaração de variáveis e constantes // passos do algoritmo projetado getch(); // aguarda usuário pressionar tecla return 0; // valor retornado pelo módulo } // final do bloco principal 6 ALGOP – Algoritmos e Programação Formato de um programa em C/C++ As diretivas de compilação indicam ao compilador que desejamos utilizar instruções presentes em certas bibliotecas. Quando usamos a diretiva #include <stdio.h> estamos informando que queremos utilizar instruções de entrada e saída de dados como as funções scanf() e printf(). (stdio é uma abreviação: std=standard, i=input, o=output) … Todo programa possui um ponto de entrada, uma função, ou módulo, principal. Nos nossos programas, sempre incluiremos a função: int main() { // corpo da função (instruções) } As chaves { } são chamadas de delimitadores de bloco. Elas indicam o início e o fim de um bloco de instruções. No caso dos módulos (ou funções), elas indicam o início e o fim do módulo. 7 ALGOP – Algoritmos e Programação Formato de um programa em C/C++ A função getch(), incluída próximo do final do bloco de instruções, fica aguardando o usuário pressionar uma tecla; essa função retorna a tecla pressionada, contudo, não estamos utilizando essa característica. A função getch() está sendo colocada no final, apenas para ficar “segurando a janelinha console” (isso no Dev-C++), fechando-a somente quando o usuário pressionar uma tecla... A palavra reservada return, indica que a função (ou módulo) irá retornar um valor do tipo qualificado antes do nome do módulo. No nosso caso, a assinatura int main() { //... } indica que devemos retornar um dado do tipo inteiro (um número inteiro) no final da função... Esses retornos podem ser utilizados para estabelecer comunicação entre os módulos. Pretendemos ver isso no final do semestre... :-) 8 ALGOP – Algoritmos e Programação Variáveis e constantes Variáveis representam informações cujos valores são modificados ao longo do tempo; por exemplo: o endereço de uma pessoa. Alguns autores definem variáveis como locais onde determinados valores (de um dos tipos de dados) ficam armazenados. Toda variável é identificada por um nome, ou identificador. Assim, uma variável é composta de dois elementos básicos: + conteúdo – valor atual da variável; + identificador – nome dado à variável para possibilitar sua manipulação. Constantes representam valores inalteráveis, ou seja, que não variam no decorrer da execução do programa; por exemplo, o valor de PI = 3.1415 não se altera, em calculos de áreas de circunferências... :-) 9 ALGOP – Algoritmos e Programação Variáveis e constantes (tipos de dados - primitivos) Tipo Em C/C++ Bits Observação Inteiro int 16 de -32768 a 32767 long 32 de -2147483648 a 2147483647 Real float 32 de 3.4E-38 a 3.4E+38 double 64 de 1.7E-308 a 1.7E+308 Literal char 8 uma letra; exemplos: 'a', 'A', 'c' ... char s[100] - palavras; exemplo: “Ubatuba” ... Lógico bool (C++) 8 assume os valores true ou false 10 ALGOP – Algoritmos e Programação Variáveis e constantes (declaração e atribuição) Na declaração de variáveis, devemos informar o tipo do dado e os nomes (ou identificadores) das variáveis. Durante a execução do programa, uma declaração gera uma reserva de parte da memória para armazenar o dado. Pseudolinguagem C/C++ Var idade : Inteiro int idade; Var altura, peso : Real float altura, peso; Var tem_filhos : Lógico bool tem_filhos; Var nome, sexo : Caracter char nome[100], sexo; const float PI = 3.1415; Quando ocorre uma atribuição, o valor, ou conteúdo da variável (dado) é efetivamente armazenado na região de memória previamente reservada. Pseudolinguagem C/C++ idade < 25 idade = 25; sexo < 'm' sexo = 'm'; 11 ALGOP – Algoritmos e Programação Variáveis e constantes (identificadores) Relembrando, existem regras para compormos os identificadores (ou nomes) das variáveis... São elas: + O primeiro caractere do identificador obrigatoriamente deve ser uma letra. + O conteúdo do identificador não pode conter caracteres especiais, como por exemplo: (!@#$%&*/-+<>?) … No identificador, só podemos ter, após o primeiro caractere, letras, números e o underscore _ … + Os identificadores não devem possuir espaços em branco. + Não pode haver nenhum identificador repetido. + Os identificadores não podem ter o mesmo nome de palavras reservadas. 12 ALGOP – Algoritmos e Programação Variáveis e constantes (uso em expressões matemáticas) Nas expressões matemáticas, o uso das chaves e dos colchetes é substituido por parênteses … Então, primeiro é resolvido o conteúdo dos parênteses mais internos, seguido das próximas expressões (entre parênteses) até a resolução dos parênteses externos, e consequentemente, da expressão... Por exemplo: A expressão matemática abaixo: Y = { 4 * [ 3 + ( X – 2 ) ] } É representada da seguinte forma: Y = ( 4 * ( 3 + ( X – 2 ) ) ) 13 ALGOP – Algoritmos e Programação Expressões matemáticas (operadores aritméticos) Os operadores para incremento (++) e decremento (--) são operadores unários (atuam sobre uma única variável alterando, ou não, o valor dela). Os outros da tabela são binários (atuam sobre 2 variáveis gerando um terceiro valor). Operador Ação + Soma (de inteiros e reais) - Subtração (de inteiros e reais) * Multiplicação (de inteiros e reais) / Divisão (de inteiros e reais) % Resto de Divisão (de inteiros) ++ Incremento(de inteiros e reais) -- Decremento (de inteiros e reais) 14 ALGOP – Algoritmos e Programação Expressões matemáticas (operadores e funções) Além dos operadores aritméticos, temos diversas funções que auxiliam na resolução de expressões matemáticas. Por exemplo, temos uma função para encontrar a raiz quadrada de um número e outra para potenciação. Para utilizarmos essas e outras funções, temos que incluir a diretiva: #include <math.h> Pseudolinguagem Ação Em C/C++ DIV divisão de inteiros / MOD resto da divisão (inteiros) % RAD raiz quadrada sqrt(valor); POT potenciação pow(base, exp); 15 ALGOP – Algoritmos e Programação Expressões matemáticas (operadores aritméticos) Na resolução de expressões matemáticas, as operações guardam uma relação hierárquica entre si. A precedência entre os operadores aritméticos é a seguinte: Prioridade 1 resolvemos os parênteses mais internos Prioridade 2 operações de POT e RAD Prioridade 3 operações de * / DIV MOD Prioridade 4 operações de + e - Em caso de empate (operadores de mesma prioridade), as operações são resolvidas da esquerda para a direita, conforme a sequência apresentada na expressão aritmética. 16 ALGOP – Algoritmos e Programação Instrução para entrada de dados Para que um algoritmo possa receber os dados que serão trabalhados, adotaremos uma instrução de entrada cuja finalidade é atribuir o dado lido (via teclado) à uma variável devidamente identificada. Pseudolinguagem (exemplos) Leia (idade) Leia (altura, peso) Em C/C++ scanf (argumento1, <endereços>); (scanf = scan format): O primeiro argumento corresponde aos tipos de dados que serão lidos, enquanto que, os demais, correspondem aos endereços de memória (operador &) onde os dados lidos serão armazenados. Por exemplo: scanf (“%d”, &idade); // usaremos mais assim (uma variável por vez) scanf (“%f %f”, &altura, &peso); Essa função fica aguardando o usuário fornecer valores pelo teclado. 17 ALGOP – Algoritmos e Programação Instrução para saída de dados Para que o algoritmo possa mostrar o resultado que foi calculado, em resposta ao problema resolvido, adotaremos uma instrução de saída de dados, cuja finalidade é exibir o conteúdo de variáveis identificadas. Pseudolinguagem (exemplos) Escreva (idade) Escreva (“A altura = ”, altura, “ e o peso = “, peso) Em C/C++ printf (argumento1, <variáveis>); (printf = print formatted): O primeiro argumento especifica o formato da frase a ser impressa, enquanto que, os demais, correspondem as variáveis que serão apresentadas na frase. printf (“%d \n”, idade); // “\n” salta para a próxima linha (pula linha) printf (“A altura = %f e o peso = %f”, altura, peso); Os valores das variáveis altura e peso serão injetados dentro da frase. 18 ALGOP – Algoritmos e Programação Funções de entrada e saída de dados (códigos de controle) As funções printf() e scanf() utilizam determinados códigos de controle, quando trabalham com variáveis de tipos diversos. Dentre eles temos: Curiosidade: se quisermos conhecer o endereço de memória onde uma variável foi armazenada usamos: printf (“endereco: %p”, &variavel); Tipo Código de Controle int %d (ou %i) … adotaremos %d long %ld (ou %li) … adotaremos %ld float %f double %lf char %c char s[255] %s 19 ALGOP – Algoritmos e Programação Instruções de entrada e saída de dados Existem outras instruções de entrada e saída de dados. A linguagem C++ conta com as instruções cin e cout, que veremos posteriormente. Uma alternativa para a entrada de dados do tipo string (palavras, frases, texto) é a função gets(). Quando abordarmos o conteúdo “Cadeias de Caracteres”, trabalharemos com essa função. Frequentemente, quando misturamos diversas instruções de entrada de dados, temos que ter cuidado com dados que ficam armazenados no buffer de teclado. Isso pode gerar comportamentos estranhos na execução das instruções de entrada. Para limpar o buffer de teclado utilizaremos a função fflush(stdin); ou outra alternativa (veremos adiante) … :-) 20 ALGOP – Algoritmos e Programação Fundamentos de programação (sugestões de leitura) + Na WEB: http://pt.wikipedia.org/wiki/C_%28linguagem_de_programa%C3%A7%C3%A3o%29 http://pt.wikipedia.org/wiki/C%2B%2B O conteúdo desses dois links é muito denso... Leiam sem muita preocupação em assimilar (apenas como curiosidade)... Mas leiam! :-) Revisem também o programa que fizemos no laboratório... Com os conceitos dessa aula, podemos entender melhor o programa utilizado para apresentar a ferramenta Dev-C++ … :-) Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20
Compartilhar