Baixe o app para aproveitar ainda mais
Prévia do material em texto
INTRODUÇÃO À LINGUAGEM C Júlia Krüger Vieira jkvieira@inf.ufpel.edu.br ALGORITMOS E PROGRAMAÇÃO Desenvolvendo programas Planejar; Lógica de programação Desenvolver; Linguagem (C/C++, Fortran, Java, etc...) Ambiente de programação (Vi, Notepad, Visual Studio, KDE developer, Dev-C++, etc...) Pré-processar, compilar e “linkeditar” Compiladores (Intel, G95, PGF90, Compaq, etc...) Testar (depuração); Ambiente de programação Corrigir (depuração); Ambiente de programação 2Programação de Computadores – UFPel Tipos de Linguagem • Baixo-Nível • São linguagens voltadas para a máquina, isto é, são escritas usando-se as instruções do microprocessador do computador • São genericamente chamadas de linguagens Assembly ou de montagem 3Programação de Computadores – UFPel Tipos de Linguagem • Alto-Nível • São linguagens voltadas para o ser humano • Em geral utilizam sintaxe estruturada tornando seu código mais legível • Necessitam de compiladores ou interpretadores para gerar as instruções do microprocessador 4Programação de Computadores – UFPel Tipos de Linguagem 5Programação de Computadores – UFPel Linguagem C - Introdução Pertence a um conjunto de linguagens cujas principais características são: Portabilidade Modularidade Compilação separada Recursos de baixo nível (tratamento de caracteres) Geração de código eficiente Confiabilidade Regularidade Simplicidade Facilidade de uso 6Programação de Computadores – UFPel Linguagem C - Aplicações A Linguagem C pode ser utilizada em diversos campos de desenvolvimento: Sistemas Operacionais Gerenciadores de Banco de Dados Editores de Texto Planilhas Eletrônicas Compiladores Sistemas de Negócios (Folha, Contabilidade, Estoque, etc) 7Programação de Computadores – UFPel O que eu preciso para programar em C? Um editor de textos, um compilador ou um ambiente de programação que forneça o editor de textos e o compilador juntos Ambientes: Dev-C++ Ambiente windows de desenvolvimento integrado livre. ● Geany Ambiente linux com versão disponível para windows de desenvolvimento integrado livre. 8Programação de Computadores – UFPel Construindo um programa compilado arq1.obj compilado arq1.obj compilado arq2.obj compilado arq2.obj compilado arq3.obj compilado arq3.obj fonte arq1.cpp fonte arq1.cpp fonte arq2.cpp fonte arq2.cpp fonte arq3.cpp fonte arq3.cpp pré-processado arq1.i pré-processado arq1.i pré-processado arq2.i pré-processado arq2.i pré-processado arq3.i pré-processado arq3.i Pré-processamento Compilação programa foo.exe programa foo.exe “linkedição” ou “linkagem” 9Programação de Computadores – UFPel Compiladores x Interpretadores Referem-se ao modo como um programa é executado Um interpretador lê o código-fonte do seu programa uma linha por vez executando a instrução específica contida nessa linha Um compilador lê o programa inteiro e converte-o para código-objeto O código Objeto é uma tradução do código fonte do programa em uma forma que o computador possa executar diretamente 10Programação de Computadores – UFPel Compiladores x Interpretadores O código objeto também conhecido como código de máquina Todo Compilador C vem com a biblioteca C padrão Muitas das funções que se precisa implementar já estão na biblioteca C padrão Elas agem com blocos básicos que o programador pode combinar Se o programador escrever uma função que irá utilizar muitas vezes, ela pode ser colocada em uma biblioteca 11Programação de Computadores – UFPel Compiladores x Interpretadores Montador (assembler) Tradutor para linguagens de 2a geração Compilador Traduz todo o programa de uma vez Interpretador Traduz o programa instrução por instrução 12 TRADUTORCÓDIGO FONTE ... LET SOMA = VAR1 + TOTAL ... (linguagem de prog.) CÓDIGO OBJETO ... 00010110111001011001011010 .. . (“executável”) Programação de Computadores – UFPel Características É uma linguagem de alto nível, genérica Foi desenvolvida por programadores para programadores, tendo como meta características de flexibilidade e portabilidade Utilizada para desenvolver o sistema operacional UNIX, e hoje está sendo usada para desenvolver novas linguagens, entre elas a linguagem C++, Java, entre outras Programas em C são compilados, gerando programas executáveis 13Programação de Computadores – UFPel Características C é uma linguagem de alto nível com uma sintaxe bastante estruturada e flexível tornando sua programação bastante simplificada C compartilha recursos tanto de alto quanto de baixo nível, pois permite acesso e programação direta do microprocessador Com isto, rotinas cuja dependência do tempo é crítica, podem ser facilmente implementadas usando instruções em Assembly Por esta razão o C é a linguagem preferida dos programadores de aplicativos 14Programação de Computadores – UFPel Características C é uma linguagem estruturalmente simples e de grande portabilidade O compilador C gera códigos mais enxutos e velozes do que muitas outras linguagens Embora estruturalmente simples (poucas funções intrínsecas) o C não perde funcionalidade pois permite a inclusão de uma farta quantidade de rotinas do usuário Os fabricantes de compiladores fornecem uma ampla variedade de rotinas pré-compiladas em bibliotecas 15Programação de Computadores – UFPel Características Um cabeçalho contendo as diretivas de compilador onde se definem o valor de constantes simbólicas, declaração de variáveis, inclusão de bibliotecas, declaração de rotinas, etc Um bloco de instruções principal e outros blocos de rotinas Documentação do programa: são os comentários 16Programação de Computadores – UFPel Características Um programa-fonte em C é um texto não formatado escrito em um editor de textos usando um o conjunto padrão de caracteres ASCII A seguir estão os caracteres utilizados em C: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 + - * / \ = | & ! ? # % ( ) { } [ ] _ ‘ “ . , : < > 17Programação de Computadores – UFPel Características Formação de identificadores: C é case sensitive Faz distinção na capitalização dos identificadores de variáveis usados em um programa, i.e., os identificadores soma, Soma e SOMA são diferentes para o compilador C Comentários: podem ser escritos em qualquer lugar do texto para facilitar a interpretação do algoritmo Para que o comentário seja identificado como tal, ele deve ter um /* antes e um */ depois Exemplo: /* esta e´ uma linha de comentário em C */ 18Programação de Computadores – UFPel Sintaxe São as regras para cada construção válida em uma linguagem específica. Estão relacionadas com: Tipos: definem as propriedades dos dados Declarações: expressam as partes de um programa Funções: especificam as ações que um programa executa, quando roda Determinação e alteração de valores Chamada de funções de I/O 19Programação de Computadores – UFPel Funções São os blocos básicos dos programas em C Há funções básicas, definidas na biblioteca C: printf (), scanf (), getchar (), putchar () Há funções definidas pelo programador, último conteúdo do semestre. Todo programa C inicia sua execução chamando a função main (), sendo obrigatório a sua declaração no programa principal. 20Programação de Computadores – UFPel Bibliotecas Diretiva #include permiteincluir uma biblioteca Bibliotecas contêm funções pré-definidas, utilizadas nos programas Exemplos 21 Funções de texto#include <string.h> Funções matemáticas#include <math.h> Funções padrão#include <stdlib.h> Funções de entrada e saída#include <stdio.h> Programação de Computadores – UFPel Funções Matemáticas 22 Função Exemplo Comentário ceil ceil (x) Arredonda o número real para cima; ceil (3.2) é 4 pow pow (x,y) Calcula x elevado à potência y exp exp (x) e elevado à potencia x fabs fabs (x) Valor absoluto de x floor floor (x) Arredonda o número real para baixo; floor(3.2) é 3 log log (x) Logaritmo natural de x log10 log10 (x) Logaritmo decimal de x cos cos (x) Cosseno de x (x em radianos) sqr sqr (x) X elevado ao quadrado sqrt sqrt (x) Raix quadrada de x Sin sin (x) Seno de x tan tan (x) Tangente de x Programação de Computadores – UFPel Exemplo #include <stdio.h> /* comentario */ //comentario main () { printf ("oi"); } 23Programação de Computadores – UFPel Identificadores São os nomes usados para fazer referência a: Variáveis Funções Módulos Rótulos Demais objetos definidos pelo usuário 24Programação de Computadores – UFPel Identificadores Regras de Formação: O primeiro caracter deve ser uma letra ou sublinhado Os 32 primeiros caracteres são significativos Case sensitive - difere maiúsculas de minúscula Exemplos de identificadores válidos em C: a A Nota nota _nota 25Programação de Computadores – UFPel Tipos O Tipo serve (grosso modo) para determinar Como os valores serão armazenados Quais operações poderão ser realizadas sobre estes valores Tipos para Dados e para Funções Tipos escalares Tipos não-escalares tipo de estrutura, tipo de união, tipo de matriz 26Programação de Computadores – UFPel Tipos Escalares Tipos Aritméticos Tipos Inteiros char, signed char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long Tipos Flutuantes float, double, long double Tipos Ponteiros para funções para objetos de dados para tipos incompletos 27Programação de Computadores – UFPel Declarações Declaram as variáveis e seus tipos Os nomes das variáveis devem conter apenas letras, dígitos e o símbolo _ Os principais tipos são: int, float, double e char Exemplos int n; int quantidade_valores; float x, y, somaValores; char sexo; char nome[40]; 28Programação de Computadores – UFPel Exemplo #include <stdio.h> #include <stdlib.h> //tamanho dos tipos main () { char c; unsigned char uc; int i; unsigned int ui; float f; double d; printf ("char %d\n", sizeof (c)); printf ("unsigned char %d\n", sizeof (uc)); printf ("int %d\n", sizeof (i)); printf ("unsigned int %d\n", sizeof (ui)); prinft ("float %d\n", sizeof (f)); printf ("double %d", sizeof (d)); printf (”\n”); system (”PAUSE”); } 29Programação de Computadores – UFPel Operadores Aritméticos (+, -, *, /, %) Atribuição (=,+=,-=,*=,/=,%=) Relacionais (>, >=, <, <=, ==, !=) Lógicos (&&, ||, !) Em C, falso é 0 (zero); qualquer outro valor é considerado verdadeiro (inclusive negativo) Operadores relacionais e lógicos têm menor precedência do que operadores aritméticos 30Programação de Computadores – UFPel Operadores Aritméticos Operad or Exemplo Comentário + x + y Soma x e y - x – y Subtrai y de x * x * y Multiplica x por y / x / y Divide x por y % x % y Resto da divisão de x por y ++ x++ Incrementa em 1 o valor de x -- y-- Decrementa em 1 o valor de y 31Programação de Computadores – UFPel Operadores de Atribuição Operad or Exemplo Comentário = x = y Atribui o valor de y a x += x += y Equivale a x = x + y -= x -= y Equivale a x = x – y *= x *= y Equivale a x = x * y /= x /= y Equivale a x = x / y %= x %= y Equivale a x = x % y 32Programação de Computadores – UFPel Operadores Relacionais Operador Exemplo Comentário == x == y Conteúdo de x é igual ao de y != x != y O conteúdo de x é diferente do de y <= x <= y O conteúdo de x é menor ou igual ao de y >= x >= y O conteúdo de x é maior ou igual ao de y > x > y O conteúdo de x é menor que o de y < x < y O conteúdo de x é maior que o de y 33 As expressões relacionais em C retornam:As expressões relacionais em C retornam: • 1 se verdadeiro1 se verdadeiro • 0 se falso0 se falso Programação de Computadores – UFPel Operadores Lógicos && (E lógico): retorna verdadeiro se ambos os operandos são verdadeiros e falso nos demais casos Exemplo: if( a>2 && b<3) || (OU lógico): retorna verdadeiro se um ou ambos os operandos são verdadeiros e falso se ambos são falsos Exemplo: if( a>1 || b<2) ! (NÃO lógico): usada com apenas um operando. Retorna verdadeiro se o operando é falso e vice-versa Exemplo: if( !var ) 34Programação de Computadores – UFPel {De,In}cremento ++x incrementa x antes de usar o seu valor x++ incrementa x depois de ser usado --y decrementa y antes de usar o seu valor y -- decrementa y depois de ser usado 35Programação de Computadores – UFPel Sobre a Precedência () [] -> ! ~ ++ -- - (tipo) * & sizeof * / % + - << >> < <= > >= == != &^! && || ?: = += -= *= /= etc , Maior Menor 36Programação de Computadores – UFPel Funções Básicas printf () Sintaxe: printf ("expressão de controle", argumentos); É uma função de E/S que permite escrever no dispositivo padrão (tela) A expressão de controle pode conter: caracteres que serão exibidos na tela códigos de formatação Cada argumento deve ser separado por vírgulas 37Programação de Computadores – UFPel Funções Básicas printf () Códigos de formatação: \n (nova linha) \t (tabulação) \b (retrocesso) \" (aspas) \\ (barra) \f (salta formulário) \0 (nulo). 38Programação de Computadores – UFPel Funções Básicas printf () Códigos de formatação: %c (caractere simples) %d (decimal) %e (notação científica) %f (ponto flutuante) %o (octal) %s (string) %u (decimal sem sinal) %x (hexadecimal) 39Programação de Computadores – UFPel Exemplo - printf () #include <stdio.h> main () { printf ("este eh o numero dois: %d", 2); } #include <stdio.h> main () { int a, b; float c; a = 2; b = 10; c = 2/( (float) 1/a + (float) 1/b); printf ("a= %d b= %d\n", a, b ); printf ("a média harmônica de a e b é: %f", c); } 40Programação de Computadores – UFPel Funções Básicas – scanf () Scanf () Sintaxe: scanf ("expressão de controle", argumentos); É uma função de E/S que permite ler dados formatados da entrada padrão (teclado) A lista de argumentos deve consistir dos endereços das variáveis na memória do computador Como obter o endereço de uma variável?? Colocando um & junto ao nome da variável. Ex.: &a (fornece o endereço da variável a) 41Programação de Computadores – UFPel Exemplo – scanf () #include <stdio.h> main () { int a, b; float c; printf ("entre com o valor de a\n"); scanf ("%d", &a); printf ("entre com o valor de b\n"); scanf ("%d", &b); c = 2/((float) 1/a + (float) 1/b); printf ("a=%d b=%d\n", a, b ); printf ("a média harmônica de a e b é: %f", c); } 42Programação de Computadores – UFPel Utilizando o Dev-C++ Inicie o Dev-C++ pelo ícone ou pelo menu Iniciar Crie um novo arquivo, com o comando File, New Source File Salve colocando: nome_arquivo.c 43Programação de Computadores – UFPelUtilizando o Dev-C++ #include <stdio.h> #include <stdlib.h> main () { printf ("Alo mundo!"); system ("PAUSE"); } 44Programação de Computadores – UFPel Utilizando o Dev-C++ Compile o programa com a tecla F9, ou utilize Compilar/Executar com a tecla F11. Se houver algum erro de sintaxe (escrita), aparece uma ou mais mensagens no rodapé da janela. Neste caso, corrija o programa e repita. Se não houver erros, execute o programa irá executar normalmente. 45Programação de Computadores – UFPel Dicas Termine todas as linhas com ; Sempre salve o programa antes de compilar Sempre compile o programa antes de executar Quando ocorrer um erro de compilação, dê um duplo clique sobre a mensagem de erro para destacar o comando errado no programa Verifique também a linha anterior, que pode ser a responsável pelo erro, especialmente se faltar o ; Use comentários, iniciados por // 46Programação de Computadores – UFPel 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 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46
Compartilhar