Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * Introdução a Linguagem C Profa. Maria Aparecida Reis Elaborado a partir do material do Profa Daniela Orbolato * Conteúdo: Histórico Tipos de Dados Variáveis Atribuição Palavras Reservadas Bibliotecas Estrutura de um programa em C * Histórico das Linguagens C Origem do C está associada ao Sistema Operacional Unix - Aproximadamente 90% do Sistema Operacional Unix (incluindo o Compilador C e quase todos os aplicativos) são escritos em C 1970: Ken Thompson desenvolve a linguagem B para o primeiro Unix no DEC PDP-7 1972: Dennis Ritchie projeta a linguagem C, baseado na linguagem B. 1988: Linguagem C é padronizada pelo American National Standard Institute (ANSI) * Algumas Características de C Linguagem de nível médio (alto – baixo) Definição de blocos { } Pré-processador Funções retornam valor e podem ser chamadas recursivamente * Tipos de Dados em C Complexos vetores matrizes struct union enum Básicos Integral char int Real float double void * Tipos Básicos de Dados em C Tipo Integral Representam números inteiros e seus negativos - o tamanho depende do processador, tipicamente 16 ou 32 bits São declarados como int Exemplos: 4578 -4578 0 Representam caracteres simples – o tamanho é de um byte São declarados como char Exemplos: ‘B’ ‘d’ ‘4’ ‘?’ ‘*’ Tipo Real Representam números reais com ponto decimal São declarados como float, ou double Exemplos: 95.274 95.0 0.265 Tipo void Usado para indicar inexistência de tipo * Modificadores de Tipos Modificadores alteram algumas características dos tipos de dados básicos da linguagem C para adequá-los as necessidades do programador Modificadores: signed: indica número com sinal (inteiros e caracteres) unsigned: indica número sem sinal (inteiros e caracteres) long: aumenta abrangência/precisão (inteiros e reais) short: reduz a abrangência (inteiros) * Valores possíveis num Computador de 16 bits Tipo Tamanho(bytes) Abrangência char 1 -128 a 127 unsigned char 1 0 a 255 int 2 -32768 a 32767 unsigned int 2 0 a 65535 long int 4 -2.147.483.648 a 2.147.483.647 unsigned long int 4 0 a 4.294.967.295 float 4 -3,4·10 -38 a 3,4·10 38 double 8 -1,7·10 -308 a 1,7·10 308 long double 10 -3,4·10 -4932 a 3,4·10 4932 * Valores possíveis num Computador de 32 bits Tipo Tamanho(bytes) Abrangência char 1 -128 a 127 unsigned char 1 0 a 255 int 4 -2.147.483.648 a 2.147.483.647 unsigned int 4 0 a 4.294.967.295 short int 2 -32768 a 32767 long int 4 -2.147.483.648 a 2.147.483.647 unsigned long int 4 0 a 4.294.967.295 float 4 -3,4·10 -38 a 3,4·10 38 double 8 -1,7·10 -308 a 1,7·10 308 long double 10 -3,4·10 -4932 a 3,4·10 4932 * Tipo char É um byte que armazena o código de um caracter do conjunto de caracteres local Caracteres são codificados de tal forma que um inteiro representa um caractere particular ASCII é o padrão dominante para codificação. Exemplos: ' ' é codificado como o inteiro 32 '+' é codificado como o inteiro 43 'A' é codificado como o inteiro 65 'Z' é codificado como o inteiro 90 ’a' é codificado como o inteiro 97 ’z' é codificado como o inteiro 122 ASCII é a abreviatura de American Standard Code for Information Interchange Tabela ASCII * Constantes de Caracteres * Dando nome aos elementos de um programa - Identificadores Um identificador é um nome dado a um objeto, variável, constante ou função em um programa C C é sensível a casa, ou seja, cont‡Cont‡CONT‡CoNt‡cOnT O uso de identificadores com significado inteligente é uma boa técnica de programação. Por exemplo, use velMax ao invés de xpt4_21 Alguns compiladores C reconhecem apenas os 31 primeiros caracteres de um identificador Palavras-chave de C não podem ser utilizadas como nome de variáveis. Exemplo: int, for, while... * Palavras Reservadas em 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 * Regras para criar um Identificador Todo identificador deve começar com uma letra ou sublinhado, seguido de zero ou mais dos seguintes caracteres: letras (A-Z, a-z) dígitos (0-9), ou sublinhado (_) Exemplos de identificadores: idade_do_cachorro impostoParaOAno2004 idadeDoCavalo Os seguintes identificadores não são válidos. Porque? Idade# 2004_Imposto idade-do-cachorro website@brasil int * Variáveis em C Variáveis são nomes dados pelo programador para posições de memória que armazenam informações de um tipo de dado Variáveis podem ser acessadas e modificadas através de identificadores Declarar uma variável significa especificar tanto o nome como o tipo do dado a ser armazenado Variáveis (assim como constantes e funções) não podem ter o nome de palavras reservadas * Variáveis em C Toda variável em C deve ser declarada antes de ser utilizada (tanto para escrita como leitura) Uma declaração de variável serve para especificar ao compilador qual o nome e tipo do dado a ser armazenado numa posição da memória Declarações de variáveis possuem o seguinte formato: TipoDoDado NomeDaVariavel1, NomeDaVariavel2, ... ; Exemplo: float distancia; int idade, numero_de_carros, i; * Atribuição de Variáveis Programadores podem armazenar/atribuir valores a uma variável através do operador de atribuição (=). A forma geral da atribuição é: variável = expressão ou constante; C permitem atribuições múltiplas x = y = z = 0; A expressão da direita é avaliada e então o resultado armazenado é armazenado no local de memória indicado pela variável da esquerda Exemplos: //Declarações das variáveis char inicialDoNome; char letra; int idadeDoCachorro; //Atribuições válidas inicialDoNome = ‘P’; letra = ‘c’; idadeDoCachorro = 6; * Atribuindo valores a variáveis Você pode atribuir valor a uma variável usando o operador de atribuição (=) variável = expressão DECLARAÇÃO DAS VARIÁVEIS char inicialDoNomeDoMeio ; char letra ; int idade; USANDO O OPERADOR DE ATRIBUIÇÃO inicialDoNomeDoMeio = ‘X’ ; letra = inicialDoNomeDoMeio ; idade = 12 ; * Como funciona o operador de atribuição? variável = expressão A expressão da direita é avaliada primeiro O resultado é então armazenado na posição de memória da variável da esquerda Obs: Uma conversão automática ocorre caso os tipos de dados da esquerda e direita não sejam idênticos. * Conversão Explícita de Tipos int(4.8) = 4 float(5) = 5.0 float(7/4) = 1.0 float(7) / float(4) = 1.75 * Conversão Explícita de Tipos em C Em C a conversão explícita tem duas formas: notação de função forma pré-fixa int intVar; float floatVar = 104.8 ; intVar = int ( floatVar ) ; // notação de função, OU intVar = ( int ) floatVar ; // forma pré-fixa usando( ) * Mais exemplos int idade; Exemplo Valor idade = 8 8 - idade - 8 5 + 8 13 5 / 8 0 6.0 / 5.0 1.2 float ( 4 / 8 ) 0.0 float ( 4 ) / 8 0.5 * Constantes Constantes são valores armazenados numa posição da memória que podem ser lidos como variáveis mas não podem ser modificados pelo programa Exemplos de declarações de constantes: const float TEMP_NORMAL = 98.6 ; const char ESPACO = ‘ ’ ; const int IDADE_LEGAL_PARA_VOTAR = 16 ; const float PI = 3.141516 ; Por convenção, constantes são escritas em letra maiúsculas * Comentários: // Um comentário /* Outro comentário que termina na terceira linha */ Comentários Use comentários para tornar um programa mais fácil de ler e entender // é usado para comentar texto da posição das duas barras até o final da linha /* … */ é usado para comentar múltiplas linhas Não aninhe comentários do tipo /* */ * Um exemplo de programa: #include <stdio.h> void main (void) { printf (“Hello World!”); } * Analisando o programa: #include <stdio.h> Diretivas ao Pré-processador #include <filename> Esta diretiva indica ao pré-processador para incluir o arquivo filename antes de continuar com a compilação – é como se todas as linhas do arquivo filename estivessem resumidas onde a diretiva #include está Os arquivos terminados em “.h” são chamados headers (ou cabeçalhos). Estes arquivos armazenam informações sobre as declaração de tipos, funções e definição de macros * Saída formatada: printf() printf() escreve um conjunto de dados na saída, convertendo os dados de acordo com a especificação de formato. Note que, ao contrário de scanf, os valores das variáveis são fornecidos Formato: printf(“<formato e texto>”, variáveis); * Saída formatada: printf() Exemplo: int i = 10; float r = 3.1514; char letra = ´A´; printf(“Inteiro: %d, Real: %f, Caractere: %c”,i,r,letra); Resultado: Inteiro: 10, Real: 3.151400, Caractere: A * Entrada Formatada: scanf() scanf() lê um string de entrada, converte os dados de acordo com a especificação de formato e armazena-os nas variáveis indicadas Formato: scanf(“<formato e texto>”, endereço variáveis); Exemplo: leitura de um inteiro do teclado: #include <stdio.h> void main() { int i; scanf(“%d”, &i); } * Função getch() int getch(); /* stdio.h */ lê um caracter do teclado e retorna um inteiro contendo o seu código ASCII não espera que o usuário tecle <return> Ex: #include <stdio.h> ... int ch; ... ch = getch(); * Tabela de formato para scanf e printf * Erros Comuns em Programas Sintaxe Programa não compila Mensagem do compilador não é clara Procure pelo erro na linha anterior ou posterior à mencionada pelo compilador Confirme que não há ; nem } faltando/sobrando Erros durante Execução Operações ilegais (por exemplo, dividir por 0) Erros Lógicos O programa produz um resultado diferente do que você não espera * Exercícios Escreva um programa em C que leia dois números inteiros em duas variáveis de tipo int e então apresente como saída a soma destes dois valores. Escreva um programa em C que leia dois números inteiros em duas variáveis de tipo int, troque os valores das variáveis e as exiba, bem como o resultado das 4 operações aritméticas operando esses valores. Escreva um programa em C que leia o ano corrente e ano de nascimento de uma pessoa e imprima a sua idade em anos e em dias, considerando que ela já fez aniversário esse ano e que todo ano tem 365 dias. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Compartilhar