Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguagem C, conceitos
elementares
Unidade 02 - Módulo 01
Por: Valéria Pequeno
Introdução
• Obje%vo:
• Dar a conhecer como construir bons programas e alguns cuidados
a ter no desenvolvimento de programas (mesmo em programas
simples)
• Erros sintá%cos:
• São erros encontrados pelo compilador quando alguma instrução
não segue as regras de construção de acordo com a linguagem (C)
2
• Erros semân%cos:
• Quando a saída do programa não é o que se esperava
Introdução
• Para encontrar erros sintáticos, primeiro o compilador
percorre o programa e seleciona todos os “tokens”
• Tokens na linguagem C:
Comentários /* ... */ //...
Diretivas #include
Palavras reservadas for while int double
Identificadores Nomes de variáveis, funções
Pontuação { ... } ; ,
3
• Programas devem ser sintaticamente e semanticamente
corretos
Comentários
• Facilitam a leitura do código
• Facilitam a manutenção do código
Elementos da linguagem C
• Na linguagem C existem dois tipos de comentários:
• /* texto */ à o texto pode envolver várias linhas
• // texto à o texto é de apenas uma linha
5
Diretivas
• # include
• Indica ao pré-processador para subsNtuir a linha em que se encontra
pelo conteúdo do ficheiro que é colocado a frente
# include <stdio.h>
6
Palavras Reservadas
• Palavras especiais usadas pela linguagem com algum propósito
2. math.h
3. Main
4. id
11
Identificadores
• Nomes que damos as variáveis, constantes e funções
• Exemplo Constante
#define PI 3.1415 Convenção: letras todas maiúsculas
int main() {
função
int idade;
}
variável
raio #nome
PI nome#
x2 23_msg
valor_em_metros -
valorEmKm data
_contador meu nome 13
Identificadores
• Iden%ficadores com apenas um caracter:
• É possível, mas devem ser evitados
Função main:
• Todo programa C deve definir uma função main que é executada
quando o programa inicia
• O valor retornado de main representa o código de erro para o
sistema operaNvo
• Retornar zero significa que o programa terminou corretamente 15
Estrutura de um Programa em C
Comentários:
Um comentário começa com /* e
#include <stdio.h>
termina com */ quando envolve
int main(void) { várias linhas
princ(“Olá.\n”); Quando o comentário é de apenas
return 0; } uma linha usamos //
Instruções:
• O corpo de uma função é uma sequência de instruções
• Exemplo: printf(“Olá.\n”);
• Cada instrução termina com ;
• Uma instrução pode ser dividida em várias linhas 16
• Podemos escrever várias instruções numa mesma linha
Código fonte
Como funciona o C? hello.c
17
Programa
executável (.exe)
Variáveis
• Na matemá%ca:
• É uma enNdade capaz de representar um valor ou expressão
• Pode representar um número ou um conjunto de números
• f(x) = x2
• Em computação:
• Posição de memória que armazena uma informação
• Pode ser modificada pelo programa
• Deve ser definida antes de ser u9lizada!
19
21
Constantes
• Como uma variável, uma constante também armazena um
valor na memória do computador
22
Definindo Constantes
• Usando #define
• Deve-se incluir a direNva de pré-processamento #define antes do
início do código
CUIDADO: nesse caso, não deve-se colocar o “;”
• Exemplo: #define PI 3.1415
• Usando const
• Usando o const, a declaração não precisa estar no início do
código
• A declaração é igual a de uma variável inicializada
• Exemplo: const double PI = 3.1415 ;
23
Exemplo de um Programa
#include <stdio.h> Há um espaço no
int main() { 2º scanf, antes do
char ch1, ch2; %, o que acontece
se o Nrarmos?
princ(“Introduza um caracter: “);
scanf(“%c”,&ch1);
princ(“Introduza outro caracter: “);
scanf(“ %c”,&ch2);
princ(“Os caracteres introduzidos foram ‘%c’ e ‘%c’\n”,ch1,ch2);
}
24
Casting
• É quando temos uma variável de um tipo de dados e queremos
modificar seu valor para ser de outro tipo de dados
25
Exemplo - Casting
#include <stdio.h>
int main() {
int num;
princ("Introduza um inteiro: ");
scanf("%d",&num);
princ("Foi introduzido %d cujo carácter = '%c'\n",num, (char)
num);
princ("O carácter seguinte = '%c' tem o ASCII nº %d\n",
(char) (num+1), num+1);
return 0;
} 26
Outro Exemplo
• Escreva um programa em C que solicite um determinado
número real e mostre qual a sua parte inteira e a sua parte
fraccionária.
#include <stdio.h>
int main(){
float x;
princ("Introduza um número real: ");
scanf("%f",&x);
princ("Parte inteira: %d\n", (int) x);
princ("Parte fraccionária: %f\n", x-((int) x));
return 0; 27
}
Operadores Lógicos
• C oferece operadores lógicos, que podem ser usados para
formar condições mais complexas ao combinar condições
simples.
• Os operadores lógicos são && (AND lógico), || (OR lógico) e !
(NOT lógico, também chamado de negação lógica)
• Exemplo:
• if ( sexo == 1 && idade >= 65 )
idosoFeminino = idosoFeminino + 1;
• if (médiaSemestre >= 90 || exameFinal>= 90 )
princ( "Nota do aluno é A\n" );
29
Operadores de Incremento e
Decremento
• Operador unário de incremento ++
• Se uma variável c é incrementada em 1, o operador de incremento
++ pode ser usado no lugar das expressões c = c + 1 ou c + = 1
• Operador de incremento ou de decremento é colocado antes de
uma variável à operador de pré-incremento ou de pré-
decremento, respec%vamente
• Operador de incremento ou decremento é colocado depois de
uma variável à operador de pós-incremento ou de pós-
decremento, respec%vamente
30
Operadores de Incremento e
Decremento
• Exemplo
31
Operadores de Incremento e
Decremento
• Exemplo (con%nuação)
...
32
Operadores
• Os operadores lógicos são && (AND lógico), || (OR lógico) e !
(NOT lógico, também chamado de negação lógica)
33
EXERCÍCIOS 34
Exercício 1
• Escreva um programa em C para dado um tempo em segundos, lido
do teclado, escreva no monitor o tempo com formato hh:mm:ss.
35
Exercício 2
• Escreva um programa em C que dada uma distância em
milhas, fornecida pelo teclado, mostra a respec%va distância
em quilômetros. Sabe-se que uma milha equivale a 1.609
quilômetros.
40
Exemplo
41
Streams
• Todas as entradas e saídas são realizadas a parNr de streams (ou
fluxos), que são sequências de bytes
47
Exemplo
48
Exemplo 2
49
Exemplo 3
50
Impressão de Strings e
Caracteres
• Os especificadores de conversão c e s são usados para
imprimir caracteres individuais e strings, respec%vamente
53
Impressã o de Literais e de
Sequê ncias de escape
54
Leitura da Entrada Formatada
com scanf
• A formatação precisa de entrada pode ser ob%da a par%r de
scanf
• Cada instrução scanf contém uma string de controle de
formato que descreve o formato dos dados a serem
informado
• A string de controle de formato consiste em especificadores
de conversão e em caracteres literais
• A função scanf tem as seguintes capacidades de formatação
de entrada:
• Entrada de todos os Npos de dados
• Entrada de caracteres específicos de um stream de entrada
• Salto de caracteres específicos no stream de entrada 55
Leitura da Entrada Formatada
com scanf
• A função scanf é escrita no seguinte formato:
scanf (string-de-controlo-de-formato, outros-argumentos);
• string-de-controlo-de-formato descreve os formatos da
entrada, e outros-argumentos são ponteiros para as variáveis
em que a entrada será armazenada.
57
Exemplo
58
Referê ncias Bibliográ >icas
• Apontamentos da disciplina Fundamentos de programação
2021/2022, ENIDH, CTEsp-RSI, por Valéria Pequeno
• Apontamentos da disciplina Estruturas de Dados Avançadas, Puc-Rio
(Brasil), por Marco A. Casanova
• Introdução à programação usando C, António Rocha, FCA, 3ª edição
• C for everyone: Programming Fundamentals, Universidade da
Califórnia, Santa Cruz (disponível no coursera:
h€ps://www.coursera.org/learn/c-for-everyone
• C, como programar. Paul Deitel, Harvey Deitel, Pearson, 6ª edição,
59
cap. 9
Material de Apoio
• h€ps://www.tutorialspoint.com/cprogramming/index.htm
• h€p://publicaNons.gbdirect.co.uk/c_book/: Página com a versão gratuita
da segunda edição do livro The C Book, de Mike Banahan, Declan Brady e
Mark Doran, publicado pela Addison Wesley em 1991
• h€p://www.cyberdiem.com/vin/learn.html: Learn C/C++ today, de V.
Carpenter. Uma coleção de referências e tutoriais sobre as linguagens C e
C++ disponíveis na Internet
• Cursos gratuitos:
• C for everyone (Coursera): hKps://www.coursera.org/learn/c-for-
everyone - Nível básico
• C for Everyone: Structured Programming (Coursera):
hKps://www.coursera.org/learn/c-structured-programming
• C essenCal (Cisco/OpenEDG): hKps://edube.org/study/ce1 - nívelbásico 60
Material de Apoio
• h•p://c-faq.com/index.html: Perguntas frequentes sobre a
linguagem C, e suas respostas (em inglês)
• h•p://cm.bell-labs.com/cm/cs/who/dmr/chist.html: "The
Development of the C Language", Dennis M. Ritchie (Janeiro
de 1993)
• h•p://www.livinginternet.com/i/iw_unix_c.htm: "History of
the C Programming Language", Stewart, Bill (Janeiro de 2000)
• h•p://www.cs.ucr.edu/ nxiao/cs10/errors.htm: "10 Common
Programming Mistakes in C"
• h•p://www.youtube.com/watch?v=XHosLhPEN3k (vídeo)
61