programação em c - aula 1...programação em c - aula 1 marcus ricardo aguiar dos santos...

81
Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos

Upload: others

Post on 28-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Programação em C - Aula 1

Marcus Ricardo Aguiar dos Santos

Page 2: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Disciplina

Bibliografia:

● Senne, Edson Luiz França - Primeiro Curso de Programação em C. 2ª e 3ª

Edição. Visual Books.

● Dauricio, Juliana Schiavetto - Algoritmos e Lógica de Programação.

Editora e Distribuidora Educacional S.A.

● Deitel, Harvey - C: Como Programar. 6ª edição. Pearson Education.

● C Progressivo: http://www.cprogressivo.net/

Page 3: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Disciplina

Ementa:

● Introdução; ● Variáveis, Entrada e saída de dados● Estruturas condicionais● Estruturas de repetição● Vetores● Matrizes● Estruturas heterogêneas.

Page 4: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Disciplina

Avaliação Parcial (30%) e Oficial (70%) 1 - 26 a 30 de set. (40%)

Avaliação Parcial (30%) e Oficial (70%) 2 - 28 de nov. a 02 de dez. (60% - toda a

matéria)

Período letivo - 03/08 a 16/12

Avaliações Parciais: atividades pré/pós-aulas e trabalhos avaliativos

Page 5: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C
Page 7: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Apresentação

Formação Acadêmica:

❖ Graduação em Engenharia de Computação - CEFET-MG (2013)

❖ Mestrado em Modelagem Computacional - CEFET-MG (2015)

❖ Especialização em Engenharia de Software - PUC-MG (2016)

Page 8: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Apresentação

Experiência Profissional:

❖ Analista de Suporte a SO (Unix) e BD (Oracle) - Oi (2011 - 2014)

❖ Analista de Sistemas Java (Web) - Proativa (2014 - 2015)

❖ Analista de Sistemas Java (BackEnd) - Group (2015 - atual)

❖ Professor - Pitágoras (2014 - atual)

Page 9: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Aula Modelo Institucional

● Acesso ao material acadêmico: http://avaeduc.com.br/

● Modelo Pré-aula, Aula e Pós-aula.

● Favor ler o material disponibilizado no portal e fazer as atividades.

Page 10: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Motivação

Page 11: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Motivação

“Além de organizar as ideias, a programação ajuda a ver o mundo de maneira

mais criativa e crítica.” Autor: Mitchl Resnick, pesquisador do MIT.

“Pensar de maneira mais lógica e objetiva, e aprender a lidar também com

grandes problemas (dividir em uma sequência de problemas menores, mais

gerenciáveis é o lema da programação), resolvendo até os problemas

complexos de uma forma mais eficiente e escalável.” Autor: Camila Achutti,

Engenheira de Software da Iridescent.

Page 12: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Motivação

Page 13: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Motivação

Page 14: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Motivação

Vídeo Motivacional

Page 15: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Aula 1 - Introdução

Page 16: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Sumário

● Introdução

● Conceitos Importantes

● Introdução a Linguagem C

● Tipos de valores

● Representação de Números Inteiros

● Representação de Dados Não Numéricos

● Variáveis

● Mostrando Dados na Console

Page 17: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução

Page 18: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

O que vamos aprender?

Programar: fazer planos para uma ocasião; planejar.

Algoritmo: conjunto das regras e procedimentos lógicos perfeitamente

definidos que levam à solução de um problema em um número finito de

etapas.

Page 19: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Algoritmo 1

Qual é o algoritmo para realizar a troca de uma lâmpada?

Page 20: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Algoritmo 1

Início

a. Verifica se o interruptor está desligado.

b. Pega uma escada.

c. Posiciona a escada no local.

d. Sobe a escada.

e. Retira a lâmpada queimada.

f. Coloca a lâmpada nova.

g. Desce da escada.

h. Ascende a lâmpada no interruptor.

i. Se a lâmpada não acender, então

j. Retira novamente a lâmpada queimada.

k. Troca por uma lâmpada nova.

l. Senão

m. Descarta a lâmpada queimada.

n. Guarda a escada.

o. Encerra a tarefa.

Fim

Page 21: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Algoritmo 2

Em uma gincana escolar, o desafio era fazer com que dois grupos de três integrantes

cada conseguissem atravessar uma ponte pela qual só é possível passar dois alunos por

vez. No entanto, como são grupos diferentes, não é permitido que em qualquer dos lados

da ponte fique mais alunos do grupo 1 (G1) que do grupo 2 (G2). Então, elabore o

algoritmo que respeite a essas regras, demonstre-o em linguagem natural e faça o teste

conforme a indicação que segue:

Jogo: (https://rachacuca.com.br/jogos/missionarios-e-canibais/)

Page 22: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Algoritmo 2

1. Atravessem o aluno1 do G1 e o aluno1 do G2.

2. Volte o aluno1 do G1.

3. Atravessem o aluno2 do G2 e o aluno3 do G2.

4. Volte o aluno1 do G2.

5. Atravessem o aluno1 do G1 e o aluno2 do G1.

6. Volte aluno1 do G1 e aluno2 do G2.

7. Atravessem o aluno1 do G1 e o aluno3 do G1.

8. Volte o aluno3 do G2.

9. Atravesse o aluno1 do G2 e o aluno2 do G2.

10. Volte aluno2 do G2.

11. Atravessem aluno2 do G2 e o aluno3 do G2.

Page 23: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Conceitos Importantes

Page 24: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Conceitos Importantes

Código de programação ou programa: corresponde a um texto, com um

conjunto de regras de sintaxe de uma determinada linguagem de

programação.

Page 25: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Conceitos Importantes

Linguagem C - um subconjunto da linguagem C++

Ambiente de programação:

● Editor de textos: reconhece um texto como sendo um programa

(Dev-C++)

● Compilador: verifica se o texto do programa obedece a sintaxe da

linguagem de programação e traduz o texto para a linguagem de máquina

Page 26: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Conceitos Importantes

Porque o compilador

traduz o programa

escrito na linguagem de

programação para a

linguagem de máquina

(código binário)?

Código do Programa Compilador

Código de Máquina (binário)001010101

010101010101010101

int main () {….

}

ERROS

Page 27: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Conceitos Importantes

Papel do Compilador: as máquinas não compreendem as gramáticas das linguagens de programação de forma direta. Elas precisam receber um código “traduzido”.

Código em linguagem de máquina: código executável pelo computador.

Page 28: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Conceitos Importantes

Toda linguagem de programação possui regras que a definem.

Erro de sintaxe: ocorre quando um texto (código fonte) não atende as regras

da linguagem.

Exemplo:

int x erro de sintaxe (toda instrução finaliza com um ;)

int x;

Page 29: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Conceitos Importantes

Um código pode ser compilado e, mesmo assim, não ser correto.

Este código possui bugs.

Para encontrar estes bugs utiliza-se um processo chamado depuração.

Programa-fonte ou código-fonte: um texto escrito em uma linguagem de

programação.

Page 30: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução a Linguagem C

Page 31: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 1

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[]){

float y;

y = sin(1.5);

printf(“y = %f”, y);

printf(“\n”);

system(“PAUSE”);

return 0;

}

Construir um programa capaz de calcular o seno de 1.5:

Uma solução para o problema.

Page 32: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução a Linguagem C

Os programas fonte na linguagem C possuem a extensão .c.

Exemplo: programa1.c

Todos os arquivos de código em c iniciam com as as linhas a seguir:

#include <stdio.h>

#include <stdlib.h>

Page 33: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução a Linguagem C

Linhas com #include indicam ao compilador que o programa-fonte vai utilizar

arquivos de cabeçalho (extensão .h, header).

As linhas do slide anterior indicam ao compilador que o programa vai utilizar

as instruções das bibliotecas stdio e stdlib.

Page 34: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução a Linguagem C

Compilação:

● Tradução: transforma o programa-fonte em um programa objeto

● Ligação: conecta o programa-objeto às instruções necessárias das

bibliotecas para produzir o executável.

Page 35: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução a Linguagem C

EDITOR

PROGRAMA FONTE COMPILADOR P. OBJETO

BIBLIOTECAS

LIGADOR

EXECUTÁVEL

Page 36: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 1

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[]){

float y;

y = sin(1.5);

printf(“y = %f”, y);

printf(“\n”);

system(“PAUSE”);

return 0;

}

Construir um programa capaz de calcular o seno de 1.5:

Uma solução para o problema.

Page 37: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução a Linguagem C

A primeira linha do programa:

int main (int argc, char *argv[])

corresponde ao cabeçalho da função main (função principal do programa).

Podem existir outras funções, mas sempre teremos a função main.

Page 38: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução a Linguagem C

Escrever um programa em C corresponde a escrever o corpo da função

principal (main):○ O corpo de uma função é sempre delimitado por { e }.

Cabecalho da função principal:

int - tipo do valor produzido pela função

main - nome da função

(int argc, char *argv[]) - lista de parâmetros da função

Page 39: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 1

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[]){

float y;

y = sin(1.5);

printf(“y = %f”, y);

printf(“\n”);

system(“PAUSE”);

return 0;

}

Construir um programa capaz de calcular o seno de 1.5:

Uma solução para o problema.

Page 40: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução a Linguagem C

Funções utilizadas no problema 1:

sin - a função matemática seno;

printf - uma função para exibir resultados na console;

Função: conjunto de instruções que recebe um ou mais parâmetros

(separados por vírgula) e retorna um valor.

Page 41: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 1

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[]){

float y;

y = sin(1.5);

printf(“y = %f”, y);

printf(“\n”);

system(“PAUSE”);

return 0;

}

Construir um programa capaz de calcular o seno de 1.5:

Uma solução para o problema.

Page 42: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução a Linguagem C

A próxima linha do problema 1 é:

system(“PAUSE”);

Este comando pausa a execução e exibe a mensagem “Pressione qualquer

tecla para continuar...”.

Page 43: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Introdução a Linguagem C

A última linha do corpo da main do problema 1 é:

return 0;

Este comando finaliza a execução do código. Zero é o valor de retorno da

função main que é a primeira função executada pelo programa. Como a main

retorna o seu resultado para nenhuma outra função, o valor de retorno é

irrelevante.

Page 44: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 1

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[]){

float y;

y = sin(1.5);

printf(“y = %f”, y);

printf(“\n”);

system(“PAUSE”);

return 0;

}

Construir um programa capaz de calcular o seno de 1.5:

Uma solução para o problema.

Page 45: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Tipos de Valores

Page 46: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Tipos de Valores

A solução de um problema de cálculo pode envolver vários tipos de dados:

● Números inteiros: números positivos ou negativos não fracionários○ 2, 3, 8, etc…

● Números com parte inteira e fracionária: separação por pontos○ 1.24, 3.454, 345.56, etc..

Page 47: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Tipos de Valores

Ponto Flutuante: valores numéricos com parte inteira e parte fracionária.

Possuem representação diferenciada na memória do computador

Utiliza-se a notação binária para representar todos tipos de valores.

Existem várias formas de representar números inteiros e de ponto flutuante.

Page 48: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Representação de Números de Ponto Flutuante

A representação de números de ponto flutuante nos computadores pode ser

de duas formas:

● Representação com precisão simples (SP)

● Representação com precisão dupla (DP)

Page 49: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Representação de Números de Ponto Flutuante

Representação com precisão simples (SP) Representação com precisão simples (DP)

Ocupação total de 32 bits Ocupação total de 64 bits

1 bit de sinal 1 bit de sinal

23 bits para a mantissa 52 bits para a mantissa

8 bits para o expoente 11 bits para o expoente

Page 50: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Representação de Dados não Númericos

Page 51: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Representação de Dados não Numéricos

Um programa de computador pode precisar também de dados não numéricos.

Existem padrões internacionais para a codificação de caracteres (ASCII, ANSI, Unicode). A linguagem C adota o padrão ASCII (American Standard Code Information Interchange).

Cada caractere é representado por 1 byte, ou 8 bits.

Page 52: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Representação de Dados não numéricos

Caractere Decimal Representação ASC II

‘A’ 65 01000001

‘B’ 66 01000010

‘a’ 97 01100001

‘b’ 98 01100010

‘0’ 48 00110000

‘1’ 49 00110001

‘+’ 43 00101011

‘@’ 64 01000000

‘\n’ 10 00001010

‘ ’ 32 00100000

Page 53: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Representação de Dados não numéricos

Representação simbólica de dados não numéricos em c:

● Caractere isolado: delimitado por apóstrofos.

ex.: ‘a’, ‘b’, ‘2’, etc...

● Sequência de caracteres (string): delimitado por aspas.

ex.: “teste”, “primeira string”, etc...

Page 54: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

Page 55: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

● Os dados de um programa são armazenados na memória do computador.

● Cada posição de memória do computador possui um endereço.

● Dado um endereço é possível saber qual é o valor armazenado em cada

uma das posições de memória.

● Para facilitar o controle sobre onde armazenar informação, os programas

utilizam variáveis.

Page 56: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

Variável: nome simbólico de uma posição(ões) de memória do computador.

Variáveis podem sofrer variações em seus valores.

Existem vários tipos de variáveis que podem ocupar diferentes tamanhos de

memória.

Page 57: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

Todo programa deve declarar (inicializar) todas as variáveis que irá utilizar e

isso deve ser feito antes da utilização da variável.

A declaração de uma variável representa a associação (alocação ou reserva)

de memória para aquele registro representado pela variável.

Page 58: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

Em C existem 4 tipos básicos de dados:

Tipo Tamanho (bytes) Valor

char 1 Um caractere

int 4 Um número inteiro

float 4 Um número de ponto flutuante no formato SP

double 8 Um número de ponto flutuante no formato DP

Page 59: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 1

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[]){

float y;

y = sin(1.5);

printf(“y = %f”, y);

printf(“\n”);

system(“PAUSE”);

return 0;

}

Construir um programa capaz de calcular o seno de 1.5:

Uma solução para o problema.

Page 60: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

No problema 1, a primeira linha do corpo da função principal é:

● float y;

esta linha declara uma variável y para armazenar um número de ponto

flutuante (formato SP).

Page 61: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

● Neste momento, a variável y foi criada e uma posição de memória foi

alocada, porém ainda sem valor.

● A linha seguinte do problema 1 faz uma atribuição de valor à variável y:

y = sin(1.5);

no lado direito do operador de atribuição, existe uma referência à função

seno com um parâmetro 1.5.

Page 62: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

Em uma linguagem de programação, dizemos que d é o parâmetro da função f

e que f (d) é o valor da função f para o parâmetro d. Exemplos:

f é a função “dobro” f(2) é o valor 4

f é a função “raiz quadrada” f(8) é o valor 2.8228427

f é a função “seno” f(1.5) é o valor 0.997485

Page 63: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

Podem existir valores d1 e d2, tais que f(d1) = f(d2).

Exemplo:

f - função “elevado ao quadrado, menos um”

f(1) = f(-1)

O valor de f(d) é único, dado f uma função do programa.

v1 = f(d) e v2 = f(d), tais que v1 diferente de v2 (não existe)

Page 64: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

O valor armazenado em uma variável por uma operação de atribuição depende

do tipo da variável.

● Tipo da variável int: será armazenado um valor inteiro.

● Tipo da variável float ou double: será armazenado um valor de ponto

flutuante.

Page 65: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Variáveis

Exemplos:

Considere as seguintes declarações:

int a;

float b;Operação de atribuição Valor armazenado na variável

a = (2 + 3)*4 20

b = (1 - 4)/(2 - 5) 1.0

a = 2.75 + 1.12 3

b = a / 2.5 1.2

Page 66: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Mostrando valores na console

Page 67: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Mostrando valores na Console

As próximas linhas do problema 1 são:

printf(“y = %f”, y);

printf(“\n”);

A função printf faz parte da biblioteca stdio. É usada para exibir resultados do

programa e pode ter um ou mais parâmetros.

Page 68: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Mostrando valores na Console

O primeiro parâmetro da função printf: uma sequencia de caracteres (string).

Essa sequencia pode conter alguns tags (especificadores de formato) que

representam valores.

Toda tag começa com um símbolo %, seguida de uma letra que indica o tipo

do valor a ser exibido.

Page 69: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Mostrando valores na Console

%d - valor inteiro Exemplo:

%f - valor de ponto flutuante printf(“a = %d, b = %f e c = %f”, a, b, (a + b));

%c - um único caractere 1º - “a = %d, b = %f e c = %f”

%s - um string. 2º - a

3º - b

4º - (a + b)

Page 70: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Mostrando valores na Console

Caractere Significado

\a O caractere (invisível) de aviso sonoro (bip).

\n O caractere (invisível) de nova linha.

\t O caractere (invisível) de tabulação horizontal.

\\ O caractere de barra invertida.

\’ O caractere de apóstrofo.

\” O caractere de aspas.

A linguagem C utiliza o símbolo \ (barra invertida) para especificar alguns

caracteres especiais:

Page 71: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 1

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[]){

float y;

y = sin(1.5);

printf(“y = %f”, y);

printf(“\n”);

system(“PAUSE”);

return 0;

}

Construir um programa capaz de calcular o seno de 1.5:

Uma solução para o problema.

Page 72: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 2

Page 73: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 2 - Exercício

Uma conta de caderneta de poupança foi aberta com um depósito de R$ 500,00. Imagine que esta conta é remunerada em 1% de juros ao mês. Qual será o valor da conta após três meses?

Page 74: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 2

#include <stdio.h>#include <stdlib.h>

int main (int argc, char *argv[]){float d, p, s, t;d = 500; // depósito inicialp = d + 0.01*d; // após o primeiro mêss = p + 0.01*p; // após o segundo mêst = s + 0.01*s; // após o terceiro mêsprintf(“Valor da conta = %.2f\n”, t);system(“PAUSE”);return 0;

}

Page 75: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Problema 2

Comentários: texto que não será compilado. São anotações que ajudam a compreender o código.

● Notação: // - tudo que se segue até o final da linha é comentário

Tag especial - %.2f (corresponde a duas casas decimais)

Ponto-e-vírgula: caractere especial que denota finalização de uma instrução de código. Um programa é um conjunto de instruções que o computador deve executar.

Page 76: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Resumo

Page 77: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Resumo

● Regras de sintaxe de uma linguagem de programação;

● Programa compilador;

● Linguagem de máquina;

● Programa-fonte, programa-objeto e programa-executável;

● Erros de sintaxe e erros de lógica;

● Arquivos de cabeçalho e bibliotecas;

● Representação de valores não-numéricos;

Page 78: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Resumo

● Variáveis;

● Tipos de valores (int, float, double, char);

● Função principal (main);

● A função printf;

● Comentários

Page 79: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Exercícios

Page 80: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Exercício 1

Escrever um programa para determinar a quantidade de litros de combustível gastos em uma viagem por um automóvel que faz 12 km/litro. Para isso, sabe-se que o tempo gasto na viagem é T = 35 min e a velocidade média do automóvel é V = 80 km/h.

Page 81: Programação em C - Aula 1...Programação em C - Aula 1 Marcus Ricardo Aguiar dos Santos Disciplina Bibliografia: Senne, Edson Luiz França - Primeiro Curso de Programação em C

Exercício 2

Imagine que C armazena o valor de uma temperatura em graus centígrados. Escrever um programa para apresentar este valor em graus Fahrenheit. A fórmula de conversão é: F = (9 * C + 160) / 5, onde F é a temperatura em graus Fahrenheit e C é a temperatura em graus centígrados.