Prévia do material em texto
Verão 2020 - Introdução à Programação
Lucas Mendonça de Souza
Instituto de Matemática e Estat́ıstica
Universidade de São Paulo
São Paulo - SP
07/01/2020
Revisão
Algoritmos - Caracteŕısticas:
Finitude
Número finito de passos.
Quantidade finita de tempo.
Exatidão
Definição dos passos sequenciais claros e precisos.
Efetividade
Resolve o problema pretendido.
1/26
Noções básicas
O que é uma variável ?
2/26
Noções básicas
O que é uma variável ? Uma área de memória identificada.
3/26
Noções básicas
O que é uma variável ? Uma área de memória identificada.
E quais os tipos de memória de um computador?
4/26
Noções básicas
O que é uma variável ? Uma área de memória identificada.
E quais os tipos de memória de um computador? Memória ROM &
RAM
5/26
Noções básicas
Read Only Memory - memória de ’somente-leitura’, não-volátil,
responsável por armazenar configurações cruciais para o
funcionamento do sistema.
Random Access Memory - memória de acesso aleatório, volátil,
responsável pelo armazenamento de dados requisitados pelo
processador durante a execução de alguma operação.
Em qual das memórias ficam armazenadas nossas variáveis?
6/26
Memória e endereços
Memória e endereços
Identificador x Variável
Convenção para criação de identificadores:
camelCase.
snake case.
Regras para identificadores (em C)
Não pode iniciar com número!
Utilize letras ’A - Z’, ’a - z’.
ou ’ ’(underline).
Não utilize letras com acentos ou outros marcadores ortográficos.
8/26
Memória e endereços
Palavras-chave não podem ser utilizadas como identificadores
9/26
Identificadores
Quais identificadores são válidos?
1 minhaIdade
2 ValorSOMA
3 3 vezes X
4 peso
5 variavel aux
6 ÁREA
7 mTemp
10/26
Entrada e Sáıda
Sabemos que um programa deve processar entradas para gerar sáıda!
Mas de que forma podemos obter informação do usuário (entrada)?
Existem muitas! Entretanto, vamos pensar na mais simples: teclado
E como fornecer informação ao mesmo (sáıda)? O terminal
11/26
Entrada e Sáıda
É de grande importância identificarmos quais são as entradas e sáıdas
que precisamos.
Consequentemente, isso nos fornece uma ideia inicial de quantas
variáveis serão necessárias:
12/26
Entrada e Sáıda
Quais as entradas e sáıdas?
Um padeiro vende uma certa quantidade de pães franceses e uma
quantidade de broas a cada dia. Cada pão custa R$ 0,12 e a broa
custa R$ 1,50. Ao final do dia, o dono quer saber quanto
arrecadou com a venda dos pães e broas (juntos), e quanto deve
guardar numa conta de poupança (10% do total arrecadado).
Entradas: quantidade de pães e broas vendidas
Sáıdas: total arrecadado com as vendas e quantia para poupança
13/26
Entrada e Sáıda
Qual a área do anel?
Entradas: raio externo e raio
interno
Sáıdas: a área do anel
14/26
Entrada e Sáıda
Um programa que calcula e expressa a idade de uma pessoa em dias.
Um programa que calcula quantas ferraduras são necessárias para
equipar todos os cavalos comprados para um haras.
Um programa que calcula a distância entre dois pontos do plano
cartesiano. Cada ponto é um par ordenado (x,y)
Três amigos, Carlos, André e Felipe. decidiram rachar igualmente a
conta de um bar. Faça um algoritmo para ler o valor total da conta e
imprimir quanto cada um deve pagar, mas faça com que Carlos e
André não paguem centavos. Ex: uma conta de R$101,53 resulta em
R$33,00 para Carlos, R$33,00 para André e R$35,53 para Felipe.
15/26
Declaração de variáveis
Para usarmos uma variável precisamos primeiro declará-la.
tipo identificador;
Tipos: int, float, double, char, void
16/26
Declaração de variáveis
int
Representação de números inteiros com sinal: positivos e negativos
32 bits armazenáveis (4 bytes)
valores de -2.147.483.648 até +2.147.483.647
17/26
Declaração de variáveis
Exemplos
int valor;
int idade, ano;
int qnt dias = 0;
18/26
Declaração de variáveis
Exemplos
int valor;
int idade, ano;
int qnt dias = 0;
19/26
Declaração, inicialização e atribuição
Sabemos que em C a variável para ser utilizada precisa ser
declarada!
Toda variável declarada pode ser inicializada: ter ser valor definido
durante a declaração.
Ex: int soma = 0;
Sempre inicialize suas variáveis! Lembrem-se das caixas e seu
conteúdo desconhecido (?).
20/26
Declaração, inicialização e atribuição
...
int a;
int soma = a + 1;
...
Qual o valor de soma?
21/26
Declaração, inicialização e atribuição
Sabemos que em C a variável para ser utilizada precisa ser
declarada!
Toda variável declarada pode ser inicializada: ter ser valor definido
durante a declaração.
Ex: int soma = 0;
Sempre inicialize suas variáveis! Lembrem-se das caixas e seu
conteúdo desconhecido (?).
Uma variável pode ter seu valor (conteúdo) alterado através de
uma atribuição.
Ex: int soma = 0;
soma = 5;
Sempre inicialize suas variáveis! Lembrem-se das caixas e seu
conteúdo desconhecido (?).
22/26
Entrada e sáıda de variáveis do tipo int
Função para entrada de dados: scanf
Para lermos um inteiro precisamos informar a função um formatador!
%d para base decimal: 10,25,128
%i para mais duas bases (incluindo a decimal): 052 (octal) e
0xFF(Hexadecimal)
Função para sáıda de dados: printf
Para escrevemos um inteiro também precisamos de um formatador!
%d para sáıdas na base decimal.
%i tem o mesmo efeito de %d
%o para sáıdas na base 8
%x para sáıdas na base 16 com letras minúsculas
%X para sáıdas em base 16 com letras maiúsculas
Para usar os comandos printf e scanf é preciso incluir a biblioteca
stdio.h!
23/26
Entrada e Sáıda
Vejamos alguns exemplos no iVProg e em C!
24/26
Precisamos falar de escopo!
Escopo é a região do programa onde a entidade é viśıvel (e acesśıvel).
Podemos dividir as variáveis quanto ao escopo em três tipos: variáveis
locais, parâmetros formais e variáveis globais.
Parâmetros formais é um assunto para mais tarde, apenas note que
ele existe!
Escopo global
Compreende a região de TODO o programa.
Ou seja, de qualquer ponto do programa você pode acessar uma
variável global.
Escopo Local
Em C, compreende a QUALQUER região delimitada por { e }.
Vejamos alguns exemplos...
25/26
Precisamos falar de escopo!
Tempo de vida
Uma variável tem seu tempo de vida (disponibilidade) associado a vida
do seu escopo.
Um escopo termina assim que a linha com } for executada!
Cuidado com o ocultamento de variáveis!
Declarar uma variável de mesmo nome num escopo mais interno!
Exemplo no quadro!
26/26