Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de saida ou de escrita T2 Algoritmos Ação é um evento que a partir de um estado inicial, após um período de tempo finito produz um estado final previsível e bem definido. Algoritmo é a descrição de um processo através de um conjunto de comandos que obedecidos resultam em uma sucessão de ações. Exemplo: Escrever os termos da série de Fibonacci inferiores a L T3 1
Algoritmo Escrever os termos da série de Fibonacci inferiores a L 1.Tome conhecimento do valor limite L 2.Defina o primeiro termo como 1 3.Defina o segundo termo como 1 4.O próximo termo será a soma dos anteriores 5.Se o novo termos é menor que o limite L, atualize o primeiro termo com o valor do segundo, e atualize o segundo com o valor do novo termo 6.Repita o processo a partir do item 4. T4 Algoritmo { Escrita do termos de Fibonacci inferiores a L } declare L, termo1, termo2, novotermo numérico { leitura do limite L } leia L { geração dos dois primeiros termos } termo1 1 termo2 1 se termo1 <= L e termo2 <= L então escreva termo1, termo2 fim se { geração dos termos restantes } repita novotermo termo1 + termo2 se novotermo > L então interrompe fim se escreva novotermo termo1 termo2 termo2 novotermo fim repita fim algoritmo T5 Programa É o algoritmo transcrito em uma linguagem que o computador possa interpretar e executar as ações definidas pelos comandos e realizar o processo como um todo. Existem várias linguagens de programação que foram projetadas objetivando facilitar ( ou complicar? ) a tarefa de programação. T6 2
Estrutura de um programa em C #include <stdio.h> // bibliotecas #include <stdlib.h> int main( ) { // Declaração de variáveis... // leitura dos dados... // cálculos... // listagem dos valores lidos e calculados... return 0; } T7 Estrutura de um programa em C Algoritmo {série Fibonacci até L } { declaração de variáveis } declare L,termo1,termo2,novoTermo numérico { leitura do limite L } leia L { geração dos dois primeiros termos } termo1 1 termo2 1 { impressão dos primeiros termos se termo1 <= L e termo2 <= L então escreva termo1, termo2 fim se { geração dos termos restantes } repita novotermo termo1 + termo2 se novotermo > L então interrompa fim se escreva novotermo termo1 termo2 termo2 novotermo fim repita fim algoritmo int main( ) { // declaração de variáveis int L, termo1, termo2, novotermo; // Leitura do valor limite scanf( " %d ",&L); // geração dos dois primeiros termos termo1 = 1; termo2 = 1; // impressão dos primeiros termos if (termo1 <= L && termo2 <= L) printf(" %d \n%d \n ", termo1, termo2); // geração dos termos restantes novotermo = termo1 + termo2; while (novotermo <= L) { printf(" %d \n ", novotermo); termo1 = termo2; termo2 = novotermo; novotermo = termo1 + termo2; }; return 0; } T8 Estrutura de um programa em C #include <stdio.h> #include <stdlib.h> int main( ) { // declaração de variáveis int L, termo1, termo2, novotermo; // Leitura do valor limite scanf( " %d ",&L); // geração dos dois primeiros termos termo1 = 1; termo2 = 1; // impressão dos primeiros termos, se menores que o limite if (termo1 <= L && termo2 <= L) printf(" %d \n%d \n ", termo1, termo2); // geração dos termos restantes novotermo = termo1 + termo2; while (novotermo <= L) { printf(" %d \n ", novotermo); termo1 = termo2; termo2 = novotermo; novotermo = termo1 + termo2; }; return 0; } T9 3
Conceito de Variável Em matemática: uma variável X pode assumir qualquer valor de um conjunto. Em computação: uma variável é uma posição de memória que pode armazenar um valor. o valor armazenado pode usado e modificado pelo programa. uma variável pode ser modificada por um comando de atribuição ou de leitura. T10 Variáveis Variáveis representam posições de memória onde podem ser armazenados valores. T11 O nome de variável É escolhido pelo programador observando o seguinte: O nome da variável deve ter um significado que corresponda à grandeza representada. Deve começar com letra. Pode conter letras e algarismos. Pode conter o caracter _ (de sublinhar). Não pode ser uma palavra chave da linguagem. Não pode conter espaços em branco, caracteres que não seja letras e algarismos ou _. Não pode conter caracteres acentuados. Observar a grafia do nome da variável com relação ao uso de letras maiúsculas e minúsculas. T12 4
Exemplos de nomes de variáveis nota1 Válido Nota final Inválido contém o caracter espaço Preco-do-dia Inválido contém o caracter - 3valor Valor_de_compra int Preço_final Invalido começa com algarismo Válido Inválido int é uma palavra chave da linguagem C Invalido usa o cedilha. T13 Variáveis Variáveis devem ser declaradas. A declaração define o nome da variável. A declaração define o tipo de valor que ela armazena. Uma declaração associa o nome da variável a uma posição da memória. Variáveis podem ser do tipo: numérico literal lógico T14 Declaração de Variáveis em linguagem algoritmica Sintaxe ou forma geral da declaração de variáveis: declare <lista-de-variaveis> <tipo> Onde: declare palavra chave que define o comando <lista-de-variaveis> é uma lista de um ou mais nomes de variáveis que vão armazenar valores. <tipo> tipo de valor que a variável pode armazenar: numérico, literal ou lógico T15 5
Declaração de Variáveis A declaração de variáveis informa o nome da variável e o tipo de dados que ela irá armazenar. Exemplos de declaração em linguagem algoritmica: Declare numero, ordem, conta numérico Declare valor, salario, preco numérico Declare distancia, tempo numérico Declare letra, caracter, digito literal Declare nome, rua, cidade literal Declare teste, condicao lógico T16 Mapeamento de declarações da linguagem algoritmica para a linguagem C numérico float, double int, long literal char, unsigned char (*) lógico simular usando typedef (*) (*) será visto posteriormente T17 Declaração de Variáveis em C A declaração de variáveis tem o formato: <tipo> <lista-de-variaveis> ; Onde <tipo> pode ser int, float, long, double ou char Exemplos de declaração em linguagem C int numero, ordem, conta; float valor, salario, preco; long distancia, tempo; char letra, caracter, digito; T18 6
Comandos de Entrada e Saída Memória Ler Escrever Unidade de Controle Unidade de Entrada Unidade de Saída Unidade de Aritmética e Lógica Processador U.C.P. T19 Comando de leitura valores em linguagem algoritmica Sintaxe ou forma geral do comando de leitura: leia <lista-de-variaveis> Onde: leia palavra chave que define o comando <lista-de-variaveis> é uma lista de um ou mais nomes de variáveis que vão armazenar os valores lidos. T20 Comando de Leitura Semântica do comando: ao ser executado um comando de leitura, o valor digitado pelo usuário no teclado é lido e armazenado na posição de memória associada à variável da lista. A leitura no teclado só ocorrerá depois do usuário digitar o valor e a tecla <enter> Se o comando está programado com uma lista de mais de uma variável uma lista de valores deve ser digitada, separados por pelo menos um espaço em branco. Quando o usuário digitar o <enter>, os valores serão lidos em ordem e armazenados na lista conforme a ordem programada. É possível programar a leitura de dados que estejam gravados em um arquivo. T21 7
Comando de leitura valores em linguagem em C Sintaxe ou forma geral do comando de leitura: scanf( <cadeia de formatos>, <endereços de variáveis> ); Onde: scanf palavra chave que define o comando <cadeia de formatos> é uma lista de caracteres, entre aspas ( ) destinada a identificar e converter os valores lidos para os tipos correspondentes às variáveis. <endereços de variáveis> - é a lista de endereços das varáveis que irão armazenar os valores lidos. É formada pelos nomes de variáveis precedidos do caracter & T23 Tabela de formatos de leitura da linguagem C Formato Tipo de conversão %c Caracter em código ASCII %d, %i %ld Valor inteiro de 2 bytes (tipo int) Valor inteiro dem 4 bytes ( tipo long) %o Valor na base 8 ( base octal) %x, %X %f, %g, %G, %e, %E %lf, %le Valor na base 16 ( base hexadecimal) Valor real e notação cientifica (tipo float) Valor real e notação cientifica (tipo double) %s Cadeia de caracteres em código ASCII, encerrada pelo código do caractere \0 ( simulaçao do tipo string) T24 Exemplos char a, b; int n; float x; double y; // leitura de valores para armazenamento // nestas variáveis scanf ( %c%c%d%f%lf, &a,&b,&n,&x,&y); T25 8
Comando de saida de valores em linguagem algoritmica Sintaxe ou forma geral do comando de leitura: escreva <lista-de-variaveis> Onde: escreva palavra chave que define o comando <lista-de-variaveis> é uma lista de um ou mais nomes de variáveis cujos valores armazenados serão exibidos. T26 Comando de escrita de valores em linguagem em C Sintaxe ou forma geral do comando de escrita: printf ( <cadeia de formatos>, <nomes de variáveis> ); Onde: printf palavra chave que define o comando <cadeia de formatos> é uma lista de caracteres, entre aspas ( ) destinada a converter os valores armazenados para os tipos correspondentes às variáveis. <nomes de variáveis> - é a lista de variáveis que contém valores armazenados e que deverão ser exibidos. T27 Tabela de formatos de escrita em C Formato Tipos correspondentes %d, %i Inteiro em 2 bytes (tipo int) %ld Inteiro em 4 bytes (tipo long) %u Inteiro em 2 bytes sem sinal %o Inteiro, octal sem sinal (base 8) %x,%x Inteiro hexadecimal, sem sinal %c Caractere ASCII %s Cadeia de caracteres em ASCII %f Real com 6 casas fracionárias %g Real com no máximo 6 casas fracionárias %e, %E Real em notação cientifica %% Escreve apenas o caractere % T28 9
Semântica do comando: Comando de saida ao ser executado, um comando de saida exibe o valor armazenado na posição de memória associada à variável da lista. A exibição padrão ocorrerá na tela do monitor. É possível programar a saida para impressora ou arquivo. Se o comando está programado com uma lista de mais de uma variável uma lista de valores será exibida conforme a ordem programada na lista de variáveis e os formatos associados. Existe um formato padrão para exibição dos valores. Entretanto é possível programar o leiaute de exibição controlando mudanças de linha, posicionamento de coluna, numero de casas decimais, títulos, etc. T29 Exemplo #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int x; printf( "%3s%9s%9s%20s%11s\n","X","X^2","X^3", "e^x","log10(x)"); printf("----------------------------------------------------\n"); for (x=1; x <=10 ;x=x+1) printf( "%3d%9d%9d%20f%11f\n", x, x*x, x*x*x, exp(x),log10(x)); return 0; } O número inteiro colocado antes de cada formato define o tamanho do campo de saida. T30 Saida do programa int main() { int x; printf( "%3s%9s%9s%20s%11s\n","X","X^2","X^3", "e^x","log10(x)"); printf("----------------------------------------------------\n"); for (x=1; x <=10 ;x=x+1) printf( "%3d%9d%9d%20f%11f\n", x, x*x, x*x*x, exp(x),log10(x)); return 0; } X X^2 X^3 e^x log10(x) ---------------------------------------------------- 1 1 1 2.718282 0.000000 2 4 8 7.389056 0.301030 3 9 27 20.085537 0.477121 4 16 64 54.598150 0.602060 5 25 125 148.413159 0.698970 6 36 216 403.428793 0.778151 7 49 343 1096.633158 0.845098 8 64 512 2980.957987 0.903090 9 81 729 8103.083928 0.954243 10 100 1000 22026.465795 1.000000 Process returned 0 (0x0) execution time : -0.000 s Press any key to continue. T31 10
FIM T32 11