Baixe o app para aproveitar ainda mais
Prévia do material em texto
Italo Valcy Programação em C, 2013.1 Programação C Italo Valcy <italo@dcc.ufba.br> Aula 01 – Introdução à linguagem C Italo Valcy Programação em C, 2013.1 2 / 52 Todo o material aqui disponível pode, posteriormente, ser utilizado sobre os termos da: Creative Commons License: Atribuição - Uso não comercial - Permanência da Licença http://creativecommons.org/licenses/by-nc-sa/3.0/ Licença de uso e distribuição Este curso foi baseado no curso “Algoritmos e Programação de Computadores” do prof. Centoducatte, da UNICAMP, disponível em <http://www.ic.unicamp.br/~ducatte/mc102/mc102.html>, e nas aulas de prof. Luciano Oliveira. Italo Valcy Programação em C, 2013.1 3 / 52 Introdução a programação Italo Valcy Programação em C, 2013.1 4 / 52 Introdução a programação O que é um algoritmo? “É um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito” Algoritmo mais antigo (400 a 300 AC): Algoritmo de Euclides, que calcula o máximo divisor comum (MDC) de dois números inteiros positivos. mdc (x, y) = mdc (y, x mod y); mdc (x, 0) = x Algoritmo Italo Valcy Programação em C, 2013.1 5 / 52 Introdução a programação Algoritmo de Euclides: mdc (x, y) = mdc (y, x mod y); mdc (x, 0) = x Entrada: dois valores inteiros positivos m e n (m > n) Saída: máximo divisor comum de m e n Algoritmo Passo 1: Adote x = m e y = n; Passo 2: Adote r = (resto de x dividido por y); Passo 3: Adote novos valores x = y e y = r; Passo 4: Se r é diferente de 0, volte ao passo 2; senão pare com a resposta x. Italo Valcy Programação em C, 2013.1 6 / 52 Introdução a programação Enfoque em algoritmos computacionais Algoritmos corretos Conceito de “programar” Ferramentas necessárias: Fluxograma Pseudo-linguagem Linguagem de programação Ambiente de programação Algoritmo Italo Valcy Programação em C, 2013.1 7 / 52 Introdução a programação Algoritmo (fluxograma) Italo Valcy Programação em C, 2013.1 8 / 52 Introdução a programação Exemplo: qual o maior número Italo Valcy Programação em C, 2013.1 9 / 52 Introdução a programação Exemplo: qual o maior número Italo Valcy Programação em C, 2013.1 10 / 52 Introdução a programação Linguagem de programação A linguagem de programação é um veículo para se escrever algoritmos a fim de resolver problemas Alguns objetivos: Resolver o problema de forma mais rápida possível Resolver o problema sem ambiguidades O código deve estar o mais organizado possível, para facilitar manutenções futuras Características: Vocabulário restrito Regras de sintaxe Recursos automáticos de verificação da sintaxe da linguagem Italo Valcy Programação em C, 2013.1 11 / 52 Introdução a programação Linguagem de programação Várias classificações: Paradigma: funcional, lógica, estruturada, orientada a objeto, etc. Compiladas/interpretadas, fortemente ou fracamente tipadas, alto nível até baixo nível, etc. Várias linguagens: C/C++, Java, PHP, C#, Python, Perl, Ruby, Assembly, Lua, etc. Italo Valcy Programação em C, 2013.1 12 / 52 Introdução a programação Exemplo: qual o maior número Italo Valcy Programação em C, 2013.1 13 / 52 Introdução a programação Do algoritmo ao executável Italo Valcy Programação em C, 2013.1 14 / 52 Introdução a programação Etapas para execução Italo Valcy Programação em C, 2013.1 15 / 52 Programação em C Italo Valcy Programação em C, 2013.1 16 / 52 Programação em C “Um programa em C, independentemente de seu tamanho, consiste em funções e variáveis. Uma função contém comandos que especificam as operações de computação a serem feitas, e as variáveis armazenam valores usados durante a computação.” -- Kernighan e Ritchie, 1989:6 Italo Valcy Programação em C, 2013.1 17 / 52 O que é C? É uma linguagem de programação de propósito geral Criada por Dennis Ritchie Derivada da linguagem B Rápida e “portável” (ANSI C) Várias aplicações... Kernel do Linux, SO, Embarcados, Compiladores, Sistemas de Tempo real GNOME Programação de circuitos ... Italo Valcy Programação em C, 2013.1 18 / 52 A linguagem C Linguagem de médio nível Linguagem estruturada (compartimentalização de código e dados) Linguagem criada para programadores É possível programar em baixo nível (com ou sem apoio da linguagem Assembly). Case sensitive Faz uso intenso de funções Todo programa precisa ter uma função main() Características Italo Valcy Programação em C, 2013.1 19 / 52 A linguagem C Linguagem Compilada Palavras chaves reservadas: Características Italo Valcy Programação em C, 2013.1 20 / 52 A linguagem C Brian W. Kernighan, Dennis M. Ritchie - C a linguagem de programação - 1986 - editora campus. http://www.cplusplus.com/reference/clibrary/ Onde obter informações Italo Valcy Programação em C, 2013.1 21 / 52 Programação em C Estrutura do código fonte Italo Valcy Programação em C, 2013.1 22 / 52 Programação em C Estrutura do código fonte Comentários Texto ignorado pelo compilador Documentação útil para descrever trechos do algoritmo Possível em qualquer posição do código fonte Duas formas para comentários: Uma linha: // comentário... Várias linhas: /* comentário … mais comentário */ Italo Valcy Programação em C, 2013.1 23 / 52 Programação em C Estrutura do código fonte Diretivas de compilador Informam outros arquivos que devem ser consultados antes de compilar Definem parâmetros utilizados pelo compilador Colocadas no início do código fonte Italo Valcy Programação em C, 2013.1 24 / 52 Programação em C Estrutura do código fonte Procedimento principal (main()) Seqüência de instruções Pontuação: Ponto-e-vírgula separa instruções Chaves agrupam instruções relacionadas: { } Italo Valcy Programação em C, 2013.1 25 / 52 Programação em C Estilo do código fonte Linhas em branco são ignoradas Italo Valcy Programação em C, 2013.1 26 / 52 Programação em C Estilo do código fonte Espaços e tabulações são ignoradas Italo Valcy Programação em C, 2013.1 27 / 52 Programação em C Estilo do código fonte De preferência, uma instrução por linha! Italo Valcy Programação em C, 2013.1 28 / 52 Primeiros passos Italo Valcy Programação em C, 2013.1 29 / 52 Primeiros passos O que você precisa? Compilador (DJGPP, gcc, etc.) Editor de texto (gedit/notepad, IDE) C é Case-Sensitive: soma != Soma != SOMA != SoMa Originalmente Programação Modular, mas... suporta: POO Programação Concorrente … Italo Valcy Programação em C, 2013.1 30 / 52 Primeiros passos Exercício: fazer um programa que exiba a seguinte mensagem na tela: “Ola Mundo!!!” Primeiro programa em C Italo Valcy Programação em C, 2013.1 31 / 52 Primeiros passos Exercício: fazer um programa que exiba a seguinte mensagem na tela: “Ola Mundo!!!” Primeiro programa em C /* Primeiro programa em C: olamundo.c */ #include <stdio.h> int main() { printf(“Ola Mundo!!!\n”); } Italo Valcy Programação em C, 2013.1 32 / 52 Primeiros passos Compilar e executar: gcc -o ola-mundo ola-mundo.c ./ola-mundo Primeiro programa em C Italo Valcy Programação em C, 2013.1 33 / 52 Primeiros passos Função saída: printf printf – print + formato Formato: printf(string-de-controle, lista-de-argumentos) Exemplo de utilização: printf ("%f",40.345) -> "40.345" printf("Ola mundo!\n"); Funções básicas de I/O Italo Valcy Programação em C, 2013.1 34 / 52 Primeiros passos Função saída: printf Funções básicas de I/O Italo Valcy Programação em C, 2013.1 35 / 52 Primeiros passos Função saída: printf Funções básicas de I/O Italo Valcy Programação em C, 2013.1 36 / 52 Variáveis e tipos de dados Italo Valcy Programação em C, 2013.1 37 / 52 Variáveis e tipos de dados Uma variável é uma porção de memória, utilizada para armazenar um determinado valor: a = 5 b = 2 a = a + 1 result = a – b Variáveis Italo Valcy Programação em C, 2013.1 38 / 52 Variáveis e tipos de dados Identificadores Cada variável necessita de um Identificador que a distingue das outras: Letraou sublinhado seguido de letras, números ou sublinhados Não podem iniciar com dígitos Dependendo do tamanho, o compilador pode ignorar alguns caracteres Cuidado com as palavras reservadas Dica de boa prática: Uso de identificadores mnemónicos Italo Valcy Programação em C, 2013.1 39 / 52 Variáveis e tipos de dados Tipos de dados fundamentais Tipos fundamentais: char – Armazenamento de caracteres int – Armazenamento de inteiros float – Ponto flutuante em precisão simples double – Ponto flutuante em dupla precisão void – sem valor Italo Valcy Programação em C, 2013.1 40 / 52 Variáveis e tipos de dados Declaração de variáveis Para declarar variáveis em C, digite o tipo da variável seguido por um identificador válido: int a; int b; float mynumber; É possível declarar variáveis de mesmo tipo na mesma linha: int a, b; Italo Valcy Programação em C, 2013.1 41 / 52 Variáveis e tipos de dados Inicialização de variáveis É possível inicializar variáveis através de atribuição após a declaração: #include <stdio.h> int main(void){ int evento ; char corrida; float tempo; evento = 5; corrida = 'C'; tempo = 27.25; printf(“O tempo vitorioso na eliminatoria %c”,corrida); printf(“\nda competicao %d foi %f.”, evento, tempo); return 1; } Italo Valcy Programação em C, 2013.1 42 / 52 Variáveis e tipos de dados Inicialização de variáveis Ou diretamente na sua declaração: Mais de uma variável de mesmo tipo: int a = 10, b = 50, c; #include <stdio.h> int main(void){ int evento = 5; char corrida = 'C'; float tempo = 27.25; printf(“O tempo vitorioso na eliminatoria %c”,corrida); printf(“\nda competicao %d foi %f.”, evento, tempo); return 1; } Italo Valcy Programação em C, 2013.1 43 / 52 Variáveis e tipos de dados Exercício Aponte os erros no programa abaixo: #include <stdio.h> int main(void){ int a=1; x=2; c=3; float 1a_parcela = 100.0; // valor do carro float d := 54.12; printf(“Os numeros sao: %d, %d e %d\n,a,d,c,x) Printf(“1a parcela = %f\n”, 1a_parcela); } Italo Valcy Programação em C, 2013.1 44 / 52 Variáveis e tipos de dados Leitura de dados do teclado Função entrada: scanf scanf – scan + formato Exemplo de utilização: scanf(string-de-controle, lista-de-argumentos) scanf ("%d",&x); scanf("%f %f", &num1, &num2); Cuidado com o buffer na leitura de string... Italo Valcy Programação em C, 2013.1 45 / 52 Operadores aritméticos Italo Valcy Programação em C, 2013.1 46 / 52 Operadores Operadores Aritméticos Operadores aritméticos A divisão inteira trunca qualquer parte fracionária A seguinte expressão produz o resto da divisão de x por y (somente aplicado à int): x % y 5 % 3 resulta em 2 Italo Valcy Programação em C, 2013.1 47 / 52 Operadores Operadores Aritméticos – Precedência Os operadores aritméticos se associam da esquerda para direita Precedência: os operadores binários + e – possuem a mesma precedência, que é menor que a precedência de *, / e %, que por sua vez é menor que a do + e – unário. Italo Valcy Programação em C, 2013.1 48 / 52 Exercício Fazer um programa que leia três inteiros a partir do teclado, calcule e imprima a soma, a média e o produto entre eles. Exemplo: Programa para operações aritméticas Entre com tres valores inteiros: 13 27 15 Soma: 55 Media: 18.33 Produto: 5265 Italo Valcy Programação em C, 2013.1 49 / 52 Exercício Fazer um programa que leia três inteiros a partir do teclado, calcule e imprima a soma, a média e o produto entre eles. Exemplo: Programa para operações aritméticas #include <stdio.h> int main() { int a,b,c; printf("Entre com tres valores inteiros: "); scanf("%d %d %d",&a,&b,&c); printf("Soma: %d\n", a+b+c); printf("Media: %.2f\n", (a+b+c)/3.0); printf("Produto: %d\n",a*b*c); return 0; } Italo Valcy Programação em C, 2013.1 50 / 52 Exercício Fazer um programa que leia um número natural, representando a quantidade de dias, e exiba o equivalente a quantidade de anos. Exemplo: 365 dias => ~1 ano 1461 dias => 4 anos Dica: para ler um inteiro na variável x, fazemos: scanf(“%d”, &x); Dica: para imprimir int e float (x e y, respec.): printf(“numero int: %d; numero float: %f\n”, x, y); Conversor de dias para anos Italo Valcy Programação em C, 2013.1 51 / 52 Exercício Fazer um programa que leia um número natural, representando a quantidade de dias, e exiba o equivalente a quantidade de anos. Conversor de dias para anos /* Conversao dias para anos: dias2anos.c */ #include <stdio.h> int main() { int dias; float anos; printf(“Digite o numero de dias: ”); scanf(“%d”,&dias); anos = dias / 365.25; printf(“\n%d dias equivale a %f anos.\n”,dias, anos); } Italo Valcy Programação em C, 2013.1 52 / 52 Exercício Exer01: Fazer um programa que leia um número inteiro de cinco dígitos, separa o inteiro em seus dígitos individuais e imprime os dígitos separados entre si por hífen (“-”) [Dica: utilize operadores de divisão de inteiros e módulo] Não imprima prompts ou mensagens adicionais! Programa um pouco mais trabalhado Exemplo de entrada 1 Exemplo de saída 1 42339 42339 Exemplo de entrada 2 Exemplo de saída 2 29128 29128 Exemplo de entrada 3 Exemplo de saída 3 99999 99999 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 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52
Compartilhar