Buscar

01 - introducao a linguagem C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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: ola­mundo.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 4­2­3­3­9
Exemplo de entrada 2 Exemplo de saída 2
29128 2­9­1­2­8
Exemplo de entrada 3 Exemplo de saída 3
99999 9­9­9­9­9
	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

Outros materiais