Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação de Computadores I Engenharia de Computação 2o. semestre 2011 CEFET-MG 2a. Aula – 11/08/2011 Prof. Evandrino Gomes Barros Conteúdo da aula Anatomia de um programa em C Variáveis: conceito, nomes, tipos Nomes de identificadores Tipos de dados básicos Operações com variáveis de acordo com o tipo Comandos de entrada e saída Formatação de saída: impressão de dados Estrutura de um programa e da programação Programa: sequência de código organizada estruturado em partes: módulos, funções, subrotinas podem ter de poucas a milhões de linhas de código etapas da programação edição do programa: editor de texto compilação transformação do programa fonte em programa executável feito pelo compilador: programa execução: feita pelo usuário usando o programa executável Escrita de um programa em C Programa mínimo em C main ( ){ } observações a função main ( ) é obrigatória todas as funções em C tem parênteses ( ) main é uma palavra reservada da linguagem a linguagem C distingue letras maiúsculas e minúsculas Main é diferente de main, mAin, maIn, MAin, maiN, MAIN todas as palavras reservadas da linguagem são escritas com letras minúsculas em geral, um programa em C é todo escrito com minúsculas, a menos de certos tipos de definição Programa "Hello World" em C #include <stdio.h> main ( ) { printf ("Hello, World!"); } versão em português: #include <stdio.h> main ( ) { printf ("Olá, mundo!"); } Variáveis Conceito de variável pode ser expresso de diversas formas variável: armazena valores que podem variar equivale aos utensílios utilizados para armazenar os alimentos quando fazemos uma receita os dados (valores numéricos) que o programa utiliza precisam ser armazenados na memória do computador antes de serem processados pela CPU: o lugar para isso são as variáveis Memória do computador sequência grande e numerada de bytes cada byte possui um endereço cada variável ocupa um conjunto de bytes na memória o número de bytes depende do tipo da variável Memória do computador e variáveis Numeração dos bytes variável f ocupa 4 bytes e tem valor igual a 3.14 Variáveis como a memória é muito grande e pode possuir bilhões de bytes (109 bytes) é difícil programar usando os endereços de memória por isso há o conceito de nome de variável: para facilitar a programação, que é feita por pessoas variável: nome que damos a uma posição de memória para que ela armazene algum valor que queremos armazenar facilita muito a programação nome da variável é associado ao seu endereço na memória pelo compilador e pelo sistema operacional Nomes de variáveis e identificadores identificadores: nomes que o programador vai escolher para o seu programa inclui nomes de variáveis, funções, constantes, etc. regras para escolher os nomes de identificadores deve ser constituído por letras do alfabeto maiúsculas ou minúsculas, dígitos (0 a 9) e o caractere underscore _ o primeiro caractere não pode ser um dígito é desaconselhável uso do _ como primeiro caractere maiúsculas e minúsculas são caracteres diferentes palavras reservadas da linguagem não podem ser usadas não usar caracteres acentuados: á, ã, é, á, ó muitos compiladores não aceitam Nomes de variáveis e identificadores Exemplos: int idade; //ok int Num_Cliente; //ok float x; //ok float 5x; //erro: inicia com dígito double porcento%; //erro:caractere inválido % char sim?nao; //erro: caractere inválido ? int _alfa; //correto, porém desaconselhável char letra, Letra; //duas variáveis diferentes correto, porém desaconselhável Ver mais exemplos no livro Nomes de variáveis e identificadores Cuidados com a escolha dos nomes dos identificadores o nome deve ser descritivo do conteúdo que ela armazena! Ex: double fatura; char resposta; int fatorial; float salario; Não: double x; char a; int sdfg; float wxyz; o nome não deve ser escrito todo em letras maiúsculas característica reservada para as CONSTANTES em C (convenção) escrever de forma a facilitar a leitura: nomeclienteprincipal NomeClientePrincipal nome_cliente_principal Nome_Cliente_Principal Tipos de dados básicos número grande em ponto flutuante 8double número pequeno em ponto flutuante 4float um número inteiro4int um caractere (ou um inteiro pequeno)1char ValorTamanho (bytes)Tipo a linguagem C implementa 4 tipos de dados básicos cada compilador é livre para escolher tamanhos (bytes) adequados de acordo com seu próprio hardware as variáveis e expressões podem assumir um destes tipos: o número de bytes depende da arquitetura do computador Modificadores de Tipos São palavras que alteram o significado de um tipo base, definindo um novo tipo derivado => especifica as características da variável As palavras são: short, long, signed, unsigned Exemplos: tipos comuns modificados => tipos derivados short int long int signed char signed int signed short int signed long int unsigned char unsigned int unsigned short int unsigned long int Faixa de valores para as variáveis Tipo Num de bits Formato para leitura Menor valor Maior valor com scanf char 8 %c -128 127 unsigned char 8 %c 0 255 signed char 8 %c -128 127 int 16 %d -32.768 32.767 unsigned int 16 %u 0 65.535 signed int 16 %i -32.768 32.767 short int 16 %hi -32.768 32.767 unsigned short int 16 %hu 0 65.535 signed short int 16 %hi -32.768 32.767 long int 32 %li -2.147.483.648 2.147.483.647 signed long int 32 %li -2.147.483.648 2.147.483.647 unsigned long int 32 %lu 0 4.294.967.295 float 32 %f 3,4E-38 3.4E+38 double 64 %lf 1,7E-308 1,7E+308 long double 80 %Lf 3,4E-4932 3,4E+4932 Tipos básicos em verde Valores para uma máquina de 16 bits Declaração e inicialização de variáveis toda variável precisa ser declarada antes de ser usada formato da declaração tipo da variável nome da variável; exemplos: int contador; char c; float pi; a variável representa um espaço na memória; ao ser declarada, ela é associada a um espaço que contém 0s e 1s; assim, ela conterá qualquer valor (que pode ser um lixo de memória) desde a sua declaração Operações com tipo int atribuição para atribuir um valor a uma variável, utilizamos a operação de atribuição sintaxe: variável = expressão; exemplos: int num; num = -17; int numero = -17; int n1 =3, n2 = 5; int a = 10, b, c, d = 123; //4 variáveis int valor = num; a = b = c = d = 5; //atribuições múltiplas atribuições múltiplas são feitas da direita para a esquerda Operações com tipo int, float e double operações com números inteiros e em ponto flutuante operadores binários: + - * / operadores unários: ++ -- resto da divisão inteira (módulo) % qualquer operação entre inteiros resulta em um inteiro Exemplo: 21 / 4 retorna 5 int b = 21/4; 21%4 módulo retorna 1 int c = 21%4; 21 4 51 Valor da divisão inteira módulo Operadores de incremento e decremento operador unário ++ soma uma unidade à variável operador unário -- subtrai uma unidade à variável exemplos: x++; //equivalentea x = x+1; x--; //equivalente a x = x – 1; estes operadores podem ser pré-fixados ou pós-fixados x = 23; y = x++; // resulta em y =23 e x = 24 x = 23; y = ++x; //resulta em y = x = 24 Pré-fixado: primeiro incrementa, depois usa o valor na expressão Pós-fixado: primeiro usa o valor na expressão, depois incrementa Operadores combinados com a atribuição • As operações de incremento (++) e decremento (--) são exemplos de operações combinadas com a atribuição • Na linguagem C, sempre que for necessário escrever uma operação de atribuição da forma poderemos combinar as operações. Exemplos: variavel = variavel operador expressao; x = x + 5; x += 5; x = x – (a + b); x -= (a + b); x = x * (a – b); x *= (a – b); x = x / (x + 1); x /= (x + 1); Exercício Calcule o resultado de cada variável após a execução das seguintes operações: int x,y,z; x = y = 10; z = ++x; x = -x; y++; z = z + x + y; Variáveis do tipo char #include <stdio.h> int main () { char Ch; Ch='D'; printf ("%c",Ch); //char D printf ("%d",Ch); //int 68 } são representadas pela linguagem como inteiros de 8 bits (um byte) por isso, podem ser vistas também como inteiros cada caractere tem o valor inteiro de sua posição na tabela de caracteres ASCII Variáveis do tipo char #include <stdio.h> int main () { char Ch; scanf("%c", &Ch); printf ("Voce pressionou a tecla %c",Ch); } Captura e imprime o caractere digitado pelo usuário Tabela de caracteres ASCII Dec Char Dec Char Dec Char Dec Char --------- --------- --------- ---------- 0 NUL (null) 32 SPACE 64 @ 96 ` 1 SOH (start of heading) 33 ! 65 A 97 a 2 STX (start of text) 34 " 66 B 98 b 3 ETX (end of text) 35 # 67 C 99 c 4 EOT (end of transmission) 36 $ 68 D 100 d 5 ENQ (enquiry) 37 % 69 E 101 e 6 ACK (acknowledge) 38 & 70 F 102 f 7 BEL (bell) 39 ' 71 G 103 g 8 BS (backspace) 40 ( 72 H 104 h 9 TAB (horizontal tab) 41 ) 73 I 105 i 10 LF (NL line feed, new line) 42 * 74 J 106 j 11 VT (vertical tab) 43 + 75 K 107 k 12 FF (NP form feed, new page) 44 , 76 L 108 l 13 CR (carriage return) 45 - 77 M 109 m 14 SO (shift out) 46 . 78 N 110 n 15 SI (shift in) 47 / 79 O 111 o 16 DLE (data link escape) 48 0 80 P 112 p 17 DC1 (device control 1) 49 1 81 Q 113 q 18 DC2 (device control 2) 50 2 82 R 114 r 19 DC3 (device control 3) 51 3 83 S 115 s 20 DC4 (device control 4) 52 4 84 T 116 t 21 NAK (negative acknowledge) 53 5 85 U 117 u 22 SYN (synchronous idle) 54 6 86 V 118 v 23 ETB (end of trans. block) 55 7 87 W 119 w 24 CAN (cancel) 56 8 88 X 120 x 25 EM (end of medium) 57 9 89 Y 121 y 26 SUB (substitute) 58 : 90 Z 122 z 27 ESC (escape) 59 ; 91 [ 123 { 28 FS (file separator) 60 < 92 \ 124 | 29 GS (group separator) 61 = 93 ] 125 } 30 RS (record separator) 62 > 94 ^ 126 ~ 31 US (unit separator) 63 ? 95 _ 127 DEL ASCII American Standard Code for Information Interchange Caracteres possíveis de imprimir Comandos de entrada e saída sintaxe da função printf printf (string_de_controle,lista_de_argumentos); string: sequência de caracteres entre aspas duplas ” ” string de controle: descreve tudo o que vai ser impresso na tela o texto a ser impresso as variáveis, de quais tipos e em que posição o local onde o valor das variáveis será impresso é marcado com o caractere especial % Formatação de saída exemplo: printf(”o valor de %d é \n”, numero); código Significado %d Inteiro %f Float %c Caractere %s String %% escreve % O formato depende do tipo da variável a ser impressa Exemplos printf ("Teste %% %%"); imprime Teste % % printf ("%f",40.345); imprime 40.345 printf ("Um caractere %c e um inteiro %d",'D',120); imprime Um caractere D e um inteiro 120 printf ("%s e um exemplo","Este"); imprime Este e um exemplo printf ("%s%d%%","Juros de ",10); imprime Juros de 10%" Comando de leitura a leitura de dados digitados pelo usuário no teclado é feita pela função scanf com sintaxe scanf (string-de-controle,lista-de-argumentos); Exemplo: Efeito: lê o valor de um número inteiro e o armazena na variável idade scanf(“%d”,&idade); Trecho de código: printf (“Digite a sua idade:\n”); scanf (“%d”, &idade); printf(“Sua idade é: %d”, idade); String de controle: formatos de leitura %c → caracter %d → inteiro %e → número ou notação científica %f → ponto flutuante %o → octal %x → hexadecimal %s → string (cadeia de caracteres) %lf → double Exemplo de uso de strings de controle #include <stdio.h> main ( ) { char a ; printf ( “digite um caracter\n” ); scanf ( “ % c”, &a ); printf (“ \n %c = %d em decimal”, a, a); printf (“%o em octal, %x em hexadecimal”, a, a); } Digitando a: a = 109 em decimal, 155 em octal, 6d em hexadecimal Caracteres especiais: constantes iniciadas por \ Código Significado \b Retrocesso ("back") \f Alimentação de formulário ("form feed") \n Nova linha ("new line") \t Tabulação horizontal ("tab") \" Aspas \' Apóstrofo \0 Nulo (0 em decimal) \\ Barra invertida \v Tabulação vertical \a Sinal sonoro ("beep") \N Constante octal (N é o valor da constante) \xN Constante hexadecimal (N é o valor da constante) Formatando a impressão com printf é possível estabelecer o tamanho mínimo para a impressão de um valor #include <stdio.h> main ( ) { printf (“os alunos são %2d \n”, 350); printf (“os alunos são %4d \n”, 350); printf (“os alunos são %5d \n”, 350); } Saída: os alunos são 350 os alunos são 350 os alunos são 350 Define o tamanho do espaço de impressão 32 Formatação de valores numéricos • formatação de valores para números inteiros • Exemplo: 00003%05d 3%01d 3%5d 3%d 3 Valor exibidoFormataçãoValor 33 Formatação de valores numéricos • Especificação do formato de saída • Exemplo: %8.3f – significa: imprimir um valor de ponto flutuante com oito caracteres no total e com três casas decimais • Se for necessário, será acrescentado o caractere ‘ ‘ (espaço) à esquerda do valor para completar o tamanho total 34 Formatação de valores numéricos • Exemplo: 1.259e+001%12.3e 1.258584E+001%E 1.258584e+001%e 12.586%7.3f 12.586%6.3f 12.586%5.3f area = 2*pi*raio 2.003100%.6f 2.003%5.3f raio = 2.0031 3.142%8.3f 3.142%5.3f pi = 3.14159 Valor exibidoTagValor Exercícios Estude os capítulos 1 e 2. Faça os exercícios dos capítulos 1 e 2. Leia o capítulo 3 para a próxima aula, isto é, ler antes da aula. Curso de C na Web http://www.ead.cpdee.ufmg.br/cursos/C/c.html 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 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35
Compartilhar