Download presentation
Presentation is loading. Please wait.
Published byAlana Ximenes Canário Modified over 8 years ago
1
Aula 2 a Linguagem C Prof. Filipe Mutz.
2
A linguagem C A linguagem de programação C foi originalmente desenvolvida por Dennis Ritchie entre 1969 e 1973 no AT&T Bell Labs, e usada para reimplementar o Sistema Operacional Unix.
3
A linguagem C É vastamente utilizada em aplicações que requerem alto desempenho (ex.: sistemas embarcados, pesquisa científica, jogos, etc.).
4
A linguagem C Algoritmo main início inteiro x inteiro y x = 2 y = x * 5 fim int main (void) { int x; int y; x = 2; y = x * 5; return 0; }
5
int main (void) { int x; int y; x = 2; y = x * 5; return 0; } Declaração do algoritmo (função) Deve informar quais são os recursos necessários e o tipo do resultado Início Fim tipo do resultado parâmetros / recursos externos (a palavra “void” representa vazio) instruções executadas em ordem (terminam com ponto-e-vírgula) O resultado gerado pelo algoritmo de fato (na declaração temos apenas o tipo) “0” indica que o programa terminou sem erros. Termos em negrito são palavras-chave da linguagem.
6
int main (void) { int x; int y; x = 2; y = x * 5; return 0; } Importante! Atenção às letras. O correto é “int” e não “Int” nem tampouco “INT”. C é uma linguagem que diferencia maiúsculas e minúsculas. Blocos são delimitados por “{“ e “}”. As instruções dentro de um bloco devem receber uma indentação (espaço em relação à margem). Normalmente a tecla de TAB é usada para isso. Muita atenção aos pontos e vírgula!
7
A Linguagem C Todo programa deve obrigatoriamente possuir uma função chamada “main”. Ela indica por onde o programa deve começar Todas as instruções devem terminar com “;” Blocos de instrução devem ser limitados por “{” e “}” Os nomes das variáveis podem possuir letras, números, e underlines (“_”). Contudo, elas não podem começar com números. Espaços não são permitidos!
8
A Linguagem C Os tipos válidos de variáveis são: – int: números inteiros positivos, negativos, e zero (4 bytes). – float: números quebrados (ponto flutuante) (4 bytes). – double: números quebrados com maior precisão (8 bytes). – char: caracteres (1 byte). Modificadores de tipos: – long: aumenta a precisão dobrando o nº de bits usados para representar o tipo (long int, por exemplo). – short: reduz pela metade o nº de bits usados para representar o tipo (short int, por exemplo) – unsigned: representa apenas números positivos. Leva a um aumento na precisão (unsigned int, por exemplo) Expressões matemáticas: +, -, *, /, % (resto da divisão)
9
Entrada e Saída em C #include int main (void) { printf(“Ola, Galera\n”); return 0; } Incorpora ao programa funções adicionais que permitem a entrada e saída de dados A função printf mostra informações na tela. Esta instrução mostra o texto “Ola, Galera” (evite acentos) e vai para a próxima linha. C possui vários caracteres especiais representados por \. O ‘\n’ serve para saltar linhas.
10
Entrada e Saída em C #include int main (void) { printf(“Ola, Galera\n”); return 0; }
11
Entrada e Saída em C #include int main (void) { int i = 10; float f = 5.5; char c = ‘p’; printf(“Exemplo: %d %f %c\n”, i, f, c); return 0; } Para mostrar os valores de variáveis na tela precisamos usar alguns caracteres especiais. “%d” indica que naquele trecho do texto será introduzido um valor inteiro, “%f” indica um float, e “%c” indica um caractere. Os valores de fato são os valores das variáveis listados separados por vírgula após o texto entre aspas. As variáveis devem estar na ordem correta!
12
Entrada e Saída em C #include int main (void) { int x = 2; printf(“x = %d\n”, x); return 0; } x = _ Memória x2...
13
Entrada e Saída em C #include int main (void) { int x = 2; printf(“x = %d\n”, x); return 0; } x = _ 2 Memória x2...
14
Entrada e Saída em C #include int main (void) { int x = 2; printf(“x = %d\n”, x); return 0; } x = 2 _ Memória x2...
15
Entrada e Saída em C #include int main (void) { int x = 2; float y = 4.5; printf(“%d %f\n”, x, y); return 0; } _ Memória x2 y4.5...
16
Entrada e Saída em C #include int main (void) { int x = 2; float y = 4.5; printf(“%d %f\n”, x, y); return 0; } _ 2 Memória x2 y4.5... 4.5
17
Entrada e Saída em C #include int main (void) { int x = 2; float y = 4.5; printf(“%d %f\n”, x, y); return 0; } _ 2 Memória x2 y4.5... 4.5
18
#include int main (void) { int x; x = 5; printf(“x ”); printf(“%d”, x); return 0; } O que vai aparecer na tela se o algoritmo ao lado for executado?
19
Entrada e Saída em C #include int main (void) { int i = 10; float f = 5.5; char c = ‘p’; printf(“Exemplo: %d %f %c\n”, i, f, c); return 0; }
20
Entrada e Saída em C #include int main (void) { int i; scanf(“%d”, &i); return 0; } A instrução scanf é usada para ler dados do teclado. O número que o usuário digitar será armazenado na variável “i”. O símbolo “%d” entre aspas indica que o valor digitado deve ser um número inteiro. Os símbolos para float, double, caracteres, etc., são os mesmos do printf. O símbolo “&” é usado para obter o endereço da variável na memória.
21
Entrada e Saída em C #include int main (void) { int i; printf(“Idade: “); scanf(“%d”, &i); printf(“%d\n”, i); return 0; } _ Memória i...
22
Entrada e Saída em C #include int main (void) { int i; printf(“Idade: “); scanf(“%d”, &i); printf(“%d\n”, i); return 0; } Idade: _ Memória i...
23
Entrada e Saída em C #include int main (void) { int i; printf(“Idade: “); scanf(“%d”, &i); printf(“%d\n”, i); return 0; } Idade: _ Memória i...
24
Entrada e Saída em C #include int main (void) { int i; printf(“Idade: “); scanf(“%d”, &i); printf(“%d\n”, i); return 0; } Idade: 26 _ Memória i26...
25
Entrada e Saída em C #include int main (void) { int i; printf(“Idade: “); scanf(“%d”, &i); printf(“%d\n”, i); return 0; } Idade: 26 _ Memória i26...
26
Entrada e Saída em C #include int main (void) { int i; printf(“Idade: “); scanf(“%d”, &i); printf(“%d\n”, i); return 0; } Idade: 26 26 _ Memória i26...
27
Exemplo Algoritmo Nascimento início inteiro idade inteiro data de nascimento escreva “Digite sua idade: ” leia idade data de nascimento = 2016 – idade Escreva “Nascimento: ”, data de nascimento fim
28
#include int main (void) { int ano_nasc; int idade; printf(“Digite sua idade: “); scanf(“%d”, &idade); ano_nasc = 2016 – idade; printf(“Nascimento: %d\n”, ano_nasc); return 0; } Memória...
29
#include int main (void) { int ano_nasc; int idade; printf(“Digite sua idade: “); scanf(“%d”, &idade); ano_nasc = 2016 – idade; printf(“Nascimento: %d\n”, ano_nasc); return 0; } Memória ano_nasc...
30
#include int main (void) { int ano_nasc; int idade; printf(“Digite sua idade: “); scanf(“%d”, &idade); ano_nasc = 2016 – idade; printf(“Nascimento: %d\n”, ano_nasc); return 0; } Memória ano_nasc idade...
31
#include int main (void) { int ano_nasc; int idade; printf(“Digite sua idade: “); scanf(“%d”, &idade); ano_nasc = 2016 – idade; printf(“Nascimento: %d\n”, ano_nasc); return 0; } Memória ano_nasc idade... Digite sua idade:_
32
#include int main (void) { int ano_nasc; int idade; printf(“Digite sua idade: “); scanf(“%d”, &idade); ano_nasc = 2016 – idade; printf(“Nascimento: %d\n”, ano_nasc); return 0; } Memória ano_nasc idade... Digite sua idade:_
33
#include int main (void) { int ano_nasc; int idade; printf(“Digite sua idade: “); scanf(“%d”, &idade); ano_nasc = 2016 – idade; printf(“Nascimento: %d\n”, ano_nasc); return 0; } Memória ano_nasc idade26... Digite sua idade:26 _
34
#include int main (void) { int ano_nasc; int idade; printf(“Digite sua idade: “); scanf(“%d”, &idade); ano_nasc = 2016 – idade; printf(“Nascimento: %d\n”, ano_nasc); return 0; } Memória ano_nasc1990 idade26... Digite sua idade:26 _
35
#include int main (void) { int ano_nasc; int idade; printf(“Digite sua idade: “); scanf(“%d”, &idade); ano_nasc = 2016 – idade; printf(“Nascimento: %d\n”, ano_nasc); return 0; } Memória ano_nasc1990 idade26... Digite sua idade:26 Nascimento: 1990 _
36
#include int main (void) { int ano_nasc; int idade; printf(“Digite sua idade: “); scanf(“%d”, &idade); ano_nasc = 2016 – idade; printf(“Nascimento: %d\n”, ano_nasc); return 0; } Memória ano_nasc1990 idade26... Digite sua idade:26 Nascimento: 1990 _
37
#include int main (void) { int ano_nasc; int idade; printf(“Digite sua idade: “); scanf(“%d”, &idade); ano_nasc = 2016 – idade; printf(“Nascimento: %d\n”, ano_nasc); return 0; } Memória... Digite sua idade:26 Nascimento: 1990 _
38
#include int main (void) { float altura, peso, imc; printf("Digite seu peso: "); scanf("%f", &peso); printf("Digite sua altura: "); scanf("%f", &altura); imc = peso / (altura * altura); printf("Seu imc e: %f\n", imc); return 0; } Memória... _ Exercício!
39
Por que precisamos fazer I/O e não podemos simplesmente inicializar os valores das variáveis com os números que queremos? Por que não podemos no printf simplesmente mostrar o texto que contém o número ao invés de usar %d e etc.?
40
Como escrever e executar programas em seu computador Computadores entendem a linguagem binária. C não é binária. Logo, seus códigos precisam ser traduzidos Interpretação: Tradução e execução linha a linha Compilação: Tradução do código inteiro e execução do programa a posteriori Híbrido: compilação + execução linha a linha (interpretação do código binário)
41
Como escrever e executar programas em seu computador Salve o seu código em um arquivo com extensão “.c” (Exemplo: teste.c, imc.c,...). Compile o código para traduzi-lo para linguagem do computador. O resultado será um arquivo executável. Use o programa à vontade.
42
Como escrever e executar programas em seu computador IDEs: Integrated Development Environment ou Ambientes Integrados de Desenvolvimento – Editor de códigos – Compilador – Ambiente de Execução – Ambiente de Depuração
43
Netbeans (instruções de instalação no site) Área de edição Terminal de saída (console)
44
Botão de Compilação Botão de Execução Botão de Depuração (debug)
45
Se o código estiver incorreto, ao clicar em compilar serão listados no console os erros e a compilação irá falhar! Ex.: instruções sem “;” no final, caracteres desconhecidos (aspas dos slides), chaves abertas e não fechadas, etc. As linhas de erro são marcadas em vermelho no editor. OBS: a falta de “;” leva a um erro na próxima linha!
46
Atenção Cuidado ao copiar o código dos slides: aspas simples, aspas duplas, e sinal de subtração são diferentes daquelas esperadas pelo editor.
47
Exemplo Escreva um algoritmo que leia os coeficientes de uma equação do segundo grau e calcule as raízes (por enquanto, considere apenas equações com valores de delta positivos). Traduza o algoritmo para C.
48
Exercício Traduzindo um algoritmo para C. Escreva um algoritmo que calcule qual será a posição final de um carro se movendo em velocidade constante dada sua velocidade, o tempo da travessia, e sua posição inicial. Traduza o algoritmo para C.
49
Erros Sintaxe: o código não obedece a gramática da linguagem. Acontecem na compilação (erros em tempo de compilação) – faltam “;” – “{“ sem “}” ou vice-versa – “(“ sem “)” ou vice-versa – Etc. Para te ajudar, o Netbeans representa esses erros com uma lâmpada vermelha ao lado dos números das linhas.
50
Erros Lógicos: o código não faz o que era previsto, planejado ou desejado. Também acontecem ao executar o programa (tempo de execução). – No imc, ao invés de fazer p / (a * a), faz a / (p * p) – Na conversão de real para dólar, ao invés de fazer valor / 4, faz valor * 4. Para identificar esses erros, crie conjuntos de entrada-saída esperados.
51
Erros Outros erros em tempo de execução: o código tenta realizar operações que não são possíveis e que não podem ser testadas em tempo de compilação. – Ex.: Tentar calcular o imc com altura = 0. – Ex.: Acesso a regiões de inválidas de memória. Alguns erros são reportados pelo programa (acesso inválido de memória), enquanto outros não (divisão por zero)) Para identificar os erros não reportados, crie conjuntos de entrada-saída que podem causar problemas.
52
Exercícios Escreva e traduza para C algoritmos para calcular os seguintes valores: – A área de um quadrado a partir de seu lado. – A área de um retângulo a partir de seu comprimento e altura. – A área e o perímetro de um de círculo a partir de seu raio (assuma pi = 3.1415).
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.