M´ et Comp Compiladores C Exerc´ ıcio C: Literais C: Vari´ aveis Exerc´ ıcio C: Mem ´ oria Exemplo Operac ¸˜ oes Exerc´ ıcio Leitura Exerc´ ıcio Func ¸˜ oes Bases M´ etodos Computacionais em F´ ısica Jos ´ e Helder Lopes e Sandra Amato Instituto de F´ ısica Universidade Federal do Rio de Janeiro Primeiro Semestre de 2017
114
Embed
Met Comp´ Compiladores C Metodos Computacionais …helder/MetComp/2017-1/Aula2/Aula2.pdf · Compiladores C Exerc´ıcio C: Literais ... Objective-C, Perl, PHP, Python, a Unix’s
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Metodos Computacionais em Fısica
Jose Helder Lopes e Sandra Amato
Instituto de FısicaUniversidade Federal do Rio de Janeiro
Primeiro Semestre de 2017
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O que e um Programa
Ü Um programa e a transcricao de um algoritmo parauma serie de instrucoes que podem ser executadaspor um computador.
Ü E preciso criar um modo de transcrever comandoscompreensıveis para humanos
programa fonteem comandos executaveis por uma CPU
programa executavelIsso depende da CPU e de um codigo pre-definido(linguagem).
8 O transcritor e chamado de compilador.8 A linguagem de programacao usada na disciplina
sera o C.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O que e um Programa
Ü Um programa e a transcricao de um algoritmo parauma serie de instrucoes que podem ser executadaspor um computador.
Ü E preciso criar um modo de transcrever comandoscompreensıveis para humanos
programa fonteem comandos executaveis por uma CPU
programa executavelIsso depende da CPU e de um codigo pre-definido(linguagem).
8 O transcritor e chamado de compilador.8 A linguagem de programacao usada na disciplina
sera o C.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O que e um Programa
Ü Um programa e a transcricao de um algoritmo parauma serie de instrucoes que podem ser executadaspor um computador.
Ü E preciso criar um modo de transcrever comandoscompreensıveis para humanos
programa fonteem comandos executaveis por uma CPU
programa executavelIsso depende da CPU e de um codigo pre-definido(linguagem).
8 O transcritor e chamado de compilador.
8 A linguagem de programacao usada na disciplinasera o C.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O que e um Programa
Ü Um programa e a transcricao de um algoritmo parauma serie de instrucoes que podem ser executadaspor um computador.
Ü E preciso criar um modo de transcrever comandoscompreensıveis para humanos
programa fonteem comandos executaveis por uma CPU
programa executavelIsso depende da CPU e de um codigo pre-definido(linguagem).
8 O transcritor e chamado de compilador.8 A linguagem de programacao usada na disciplina
sera o C.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Criando um programa executavel
8 O programa fonte e escrito em ascii.Ü Letras (maiusculas 6= minusculas)Ü Algarismos 0-9Ü Sımbolos: "#$%&’()*+,-. / : ;<=>?@[\]ˆ_‘ {|} !
8 O nome do arquivo que contem o codigo fonte tera aextensao *.c
8 Um arquivo executavel e criado quando compilamos oprograma usando o comando:gcc programa.c -o programa(Nesse processo ocorrem 3 etapas: pre-processamento,compilacao e linkagem com bibliotecas)
8 Para executar o programa, usamos o comando:./programa
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Linguagem C - Visao geral
Ü A linguagem C foi inicialmente desenvolvida por DennisRitchie, dos Laboratorios Bell, entre 1969 e 1973.
Ü Fornece uma eficiente relacao com instrucoes tıpicasde linguagem de maquina ou linguagens de baixonıvel, como o assembly.
Ü Foi logo utilizada para codificar inumeros aplicativos,desde sistema operacionais ate software parasupercomputadores. E portavel e eficiente.
Ü A origem do C esta interligada com a do sistemaoperacional UNIX, posteriormente re-escrito em C.
Ü Muitas outras linguagens herdaram caracterısticas doC: C++, Java, LPC, C#, Objective-C, Perl, PHP, Python,a Unix’s C shell, . . . .
Ü C e uma linguagem de proposito generico. E a maislargamente utilizada de todos os tempos.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O Primeiro Programa em C
8 Escolha um editor detexto (vi, gedit ...) paracriar um arquivo: *.c
8 O programa principaldeve ficar entre {}
8 Inclua biblioteca padraode entrada e saıda (I/O)
8 Inclua os comandos8 printf→ funcao que
imprime texto8 \n e notacao de nova
linha
gedit primeiroPrograma.c &
#include <stdio.h>int main( ){
printf(”Funciona!\n”);return 0;
}
8 A execucao da funcao termina ao encontrar o return
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O Primeiro Programa em C
8 Escolha um editor detexto (vi, gedit ...) paracriar um arquivo: *.c
8 O programa principal(main) deve ficar entre {}
8 Inclua biblioteca padraode entrada e saıda (I/O)
8 Inclua os comandos8 printf→ funcao que
imprime texto8 \n e notacao de nova
linha
#include <stdio.h>
int main( ){
printf(”Funciona!\n”);return 0;
}
8 A execucao da funcao termina ao encontrar o return
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O Primeiro Programa em C
8 Escolha um editor detexto (vi, gedit ...) paracriar um arquivo: *.c
8 O programa principaldeve ficar entre {}
8 Inclua biblioteca padrao(standard) de entrada esaıda (I/O)
8 Inclua os comandos8 printf→ funcao que
imprime texto8 \n e notacao de nova
linha
#include <stdio.h>int main( ){
printf(”Funciona!\n”);return 0;
}
8 A execucao da funcao termina ao encontrar o return
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O Primeiro Programa em C
8 Escolha um editor detexto (vi, gedit ...) paracriar um arquivo: *.c
8 O programa principaldeve ficar entre {}
8 Inclua biblioteca padraode entrada e saıda (I/O)
8 Inclua os comandos
8 printf→ funcao queimprime texto
8 \n e notacao de novalinha
#include <stdio.h>int main( ){
printf(”Funciona!\n”);
return 0;
}
8 A execucao da funcao termina ao encontrar o return
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O Primeiro Programa em C
8 Escolha um editor detexto (vi, gedit ...) paracriar um arquivo: *.c
8 O programa principaldeve ficar entre {}
8 Inclua biblioteca padraode entrada e saıda (I/O)
8 Inclua os comandos8 Note o ;
8 printf→ funcao queimprime texto
8 \n e notacao de novalinha
#include <stdio.h>int main( ){
printf(”Funciona!\n”);return 0;
}
8 A execucao da funcao termina ao encontrar o return
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O Primeiro Programa em C
8 Escolha um editor detexto (vi, gedit ...) paracriar um arquivo: *.c
8 O programa principaldeve ficar entre {}
8 Inclua biblioteca padraode entrada e saıda (I/O)
8 Inclua os comandos8 printf→ funcao que
imprime texto
8 \n e notacao de novalinha
#include <stdio.h>int main( ){
printf(”Funciona!\n”);return 0;
}
8 A execucao da funcao termina ao encontrar o return
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O Primeiro Programa em C
8 Escolha um editor detexto (vi, gedit ...) paracriar um arquivo: *.c
8 O programa principaldeve ficar entre {}
8 Inclua biblioteca padraode entrada e saıda (I/O)
8 Inclua os comandos8 printf→ funcao que
imprime texto8 \n e notacao de nova
linha
#include <stdio.h>int main( ){
printf(”Funciona!\n”);return 0;
}
8 A execucao da funcao termina ao encontrar o return
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
O Primeiro Programa em C
8 Escolha um editor detexto (vi, gedit ...) paracriar um arquivo: *.c
8 O programa principaldeve ficar entre {}
8 Inclua biblioteca padraode entrada e saıda (I/O)
8 Inclua os comandos8 printf→ funcao que
imprime texto8 \n e notacao de nova
linha
#include <stdio.h>int main( ){
printf(”Funciona!\n”);return 0;
}
8 A execucao da funcao termina ao encontrar o return
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
8 Um programa em C se organiza em funcoes.8 Temos uma funcao especial: main(). Todo programa
em C deve ter uma e somente uma funcao main(), oprograma comeca a ser executado no inıcio dela.
8 As expressoes que compoem uma funcao saoenvolvidas por {}
8 Usualmente a funcao main() chamara outras funcoes.Neste exemplo temos apenas uma: printf
8 Um metodo de comunicacao entre funcoes e passaruma lista de valores, chamados argumentos e que saocolocados entre parentesis. Neste exemplo a funcaomain() nao tem argumentos e a funcao printf recebecomo argumento o que se deseja imprimir na tela.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Exercıcio 1
Escreva e rode um programa usando o comando printf.
Experimente alguns dos seguintes caracteres de escape nolugar do \n:\t: horizontal tab, \v: vertical tab, \b: backspace,\r: carriage return, \f: formfeed, \a: bell, \\ : backslash,\?: question mark , \’: single quote, \” : double quote.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Valores literais em C
Como devemos escrever os dados num programa em C ?Ü Inteiros de precisao simples: 3, 540, ...Ü Inteiros de precisao dupla: 120l, 15L ( l ou L→ long)Ü Reais no formato decimal: 10.3, 102.5761, ...
O ponto decimal e obrigatorio.Ü Reais no formato exponencial: 1.e-3, 13E-5, 1.7e-6, ...
O ponto decimal nao e obrigatorioÜ Reais de precisao dupla: 14.6L, 1.8025e-2L, ...Ü Caracteres: A letra entre “plics”: ’a’, ’G’, ’9’, ’\n’, ’\t’, ...Ü Sequencia de caracteres ou String: Caracteres entre
aspas: “Bom dia”, “Tudo\tbem?\n”, ...
Outros (pesquise): 13u, 57ul, 036, 0x25dF, ’\u03C0’, ...
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Valores literais em C
Como devemos escrever os dados num programa em C ?Ü Inteiros de precisao simples: 3, 540, ...Ü Inteiros de precisao dupla: 120l, 15L ( l ou L→ long)Ü Reais no formato decimal: 10.3, 102.5761, ...
O ponto decimal e obrigatorio.Ü Reais no formato exponencial: 1.e-3, 13E-5, 1.7e-6, ...
O ponto decimal nao e obrigatorioÜ Reais de precisao dupla: 14.6L, 1.8025e-2L, ...Ü Caracteres: A letra entre “plics”: ’a’, ’G’, ’9’, ’\n’, ’\t’, ...Ü Sequencia de caracteres ou String: Caracteres entre
Observacoes:’a’ e diferente de ”a”1 e diferente de ’1’ ou ”1”e de 1.0E muito melhor escrever 1e-6 do que 0.000001 ...
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Identificadores em C
Ü Na linguagem C usamos nomes arbitrarios para designarvariaveis, constantes e funcoes, chamados deidentificadores.Nenhum identificador e reconhecido pelo programa antes deser declarado.
Ü No inıcio de cada bloco de codigo sao feitas as declaracoesde variaveis e constantes, onde definimos seus nomes etipos. Precisamos especificar o tipo de todas as variaveis.
Ü Os nomes dos identificadores devem refletir seusignificado!
Ü Na escolha dos identificadores as letras minusculas saodiferenciadas das maiusculas, os nomes podem conterletras e numeros, mas devem iniciar por uma letra.
Ü O uso de letras minusculas e uma tradicao em C. Paranomes compostos sugere-se usar o “ ” (sublinhado) ouletras maiusculas como separador.Ex.: velocidade media ou velocidadeMedia
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Variaveis em C
Ü Todas os identificadores usados em umprograma devem ser declarados
Ü Exemplos de declaracao de variaveis:int certos, errados;long contador;float sigma;double massa, velocidade;
Outros tipos: short, unsigned int, char, ...
Ü Exemplos de declaracao de variaveiscom inicializacao:char letra = ’c’;double aceleracao = 1.2e+2;
Ü Exemplos de declaracao de constantes:const double pi=3.141592654;const int N=3;
Escolha bemos nomes dassuas variaveis
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Variaveis em C
Ü Todas os identificadores usados em umprograma devem ser declarados
Ü Exemplos de declaracao de variaveis:int certos, errados;long contador;float sigma;double massa, velocidade;
Outros tipos: short, unsigned int, char, ...
Ü Exemplos de declaracao de variaveiscom inicializacao:char letra = ’c’;double aceleracao = 1.2e+2;
Ü Exemplos de declaracao de constantes:const double pi=3.141592654;const int N=3;
Escolha bemos nomes dassuas variaveis
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Variaveis em C
Ü Todas os identificadores usados em umprograma devem ser declarados
Ü Exemplos de declaracao de variaveis:int certos, errados;long contador;float sigma;double massa, velocidade;
Outros tipos: short, unsigned int, char, ...
Ü Exemplos de declaracao de variaveiscom inicializacao:char letra = ’c’;double aceleracao = 1.2e+2;
Ü Exemplos de declaracao de constantes:const double pi=3.141592654;const int N=3;
Escolha bemos nomes dassuas variaveis
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Variaveis em C
Ü Todas os identificadores usados em umprograma devem ser declarados
Ü Exemplos de declaracao de variaveis:int certos, errados;long contador;float sigma;double massa, velocidade;
Outros tipos: short, unsigned int, char, ...
Ü Exemplos de declaracao de variaveiscom inicializacao:char letra = ’c’;double aceleracao = 1.2e+2;
Ü Exemplos de declaracao de constantes:const double pi=3.141592654;const int N=3;
Escolha bemos nomes dassuas variaveis
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Variaveis em C
Ü Todas os identificadores usados em umprograma devem ser declarados
Ü Exemplos de declaracao de variaveis:int certos, errados;long contador;float sigma;double massa, velocidade;
Outros tipos: short, unsigned int, char, ...
Ü Exemplos de declaracao de variaveiscom inicializacao:char letra = ’c’;double aceleracao = 1.2e+2;
Ü Exemplos de declaracao de constantes:const double pi=3.141592654;const int N=3;
Escolha bemos nomes dassuas variaveis
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Essas expressoes tem o efeito de solicitar que sejamreservados espacos de memoria com o tamanho eestrutura especıficos de cada tipo de dado, eassocia-los aos nomes que escolhemos.
O valor inicial das variaveis em geral e algum lixo,essencialmente o conteudo que ja existia naquela posicaode memoria.
Ü Atribuicao de um valor a uma variavel (ja declaradaanteriormente):errados = 0;velocidade = 10.34;k = 3;forca = k*x;
Ü Cuidado! Uma variavel esta associada a uma regiao damemoria. Se voce nao definir um valor inicial adequado, oprograma usa o valor que ja existia nessa posicao
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Essas expressoes tem o efeito de solicitar que sejamreservados espacos de memoria com o tamanho eestrutura especıficos de cada tipo de dado, eassocia-los aos nomes que escolhemos.
O valor inicial das variaveis em geral e algum lixo,essencialmente o conteudo que ja existia naquela posicaode memoria.
Ü Atribuicao de um valor a uma variavel (ja declaradaanteriormente):errados = 0;velocidade = 10.34;k = 3;forca = k*x;
Ü Cuidado! Uma variavel esta associada a uma regiao damemoria. Se voce nao definir um valor inicial adequado, oprograma usa o valor que ja existia nessa posicao
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Variaveis em C
Ü Para imprimir uma variavel:printf(”resposta = %d \n”, errados);
printf(”item: %d valor: %f \n”, i, val);
Especificacoes de formato:%d: inteiro,%f: float, notacao decimal%g: float,notacao decimal ou cientıfica,%c: caracter.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Variaveis em C
Ü Para imprimir uma variavel:printf(”resposta = %d \n”, errados);printf(”item: %d valor: %f \n”, i, val);
Especificacoes de formato:%d: inteiro,%f: float, notacao decimal%g: float,notacao decimal ou cientıfica,%c: caracter.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Variaveis em C
Ü Para imprimir uma variavel:printf(”resposta = %d \n”, errados);printf(”item: %d valor: %f \n”, i, val);
Especificacoes de formato:%d: inteiro,%f: float, notacao decimal%g: float,notacao decimal ou cientıfica,%c: caracter.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Variaveis em C
Ü Para imprimir uma variavel:printf(”resposta = %d \n”, errados);printf(”item: %d valor: %f \n”, i, val);
Especificacoes de formato:%d: inteiro,%f: float, notacao decimal%g: float,notacao decimal ou cientıfica,%c: caracter.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Exercıcio 2
Escreva um programa que imprima varios tipos de variaveisantes e apos o valor ser atribuıdo
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Variaveis e Memoria
Ü O tamanho da area de memoria reservada para cadatipo de variavel pode ser obtido atraves do operadorsizeof
Ü O comando abaixo imprime a area reservada paravariaveis do tipo int.
printf(”um inteiro tem %d bytes\n”,sizeof(int));Ü Baixe os programas sizes.c e limits.c da pagina do
curso. Veja o conteudo, compile, rode cada um.Observe o resultado.
Ü Recomendamos o uso de tipo double para variaveisreais
#include <stdio.h>int main(){printf("um caracter tem %d bytes\n",sizeof(char));printf("um inteiro tem %d bytes\n",sizeof(int));printf("um inteiro curto tem %d bytes\n",sizeof(short));printf("um inteiro longo tem %d bytes\n",sizeof(long));printf("um real tem %d bytes\n",sizeof(float));printf("um real duplo tem %d bytes\n",sizeof(double));return 0;
}
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes Aritmeticas Simples
Os operadores aritmeticos binarios sao +, -, *, / e %.
Exemplo de operacao
double x, a; Ü Memoria e alocada para x e aa = 2.0; Ü O valor 2.0 e atribuıdo a ax = 10.5; Ü O valor 10.5 e atribuıdo a xx = a*x; Ü O produto (21.0) e atribuıdo a x
Exemplo com inteiros
int i=3, j=2, k;k = i/j; Ü k passa a valer 1 e nao 1.5k = j/i; Ü k passa a valer 0 e nao 0.66...
% e o operador modulo ou resto: calcula o resto da divisaodo primeiro operando pelo segundo. Os operandos devemser inteiros: 3%2 = 1, 4%2 = 0
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes Aritmeticas Simples
Os operadores aritmeticos binarios sao +, -, *, / e %.
Exemplo de operacaodouble x, a; Ü Memoria e alocada para x e a
a = 2.0; Ü O valor 2.0 e atribuıdo a ax = 10.5; Ü O valor 10.5 e atribuıdo a xx = a*x; Ü O produto (21.0) e atribuıdo a x
Exemplo com inteiros
int i=3, j=2, k;k = i/j; Ü k passa a valer 1 e nao 1.5k = j/i; Ü k passa a valer 0 e nao 0.66...
% e o operador modulo ou resto: calcula o resto da divisaodo primeiro operando pelo segundo. Os operandos devemser inteiros: 3%2 = 1, 4%2 = 0
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes Aritmeticas Simples
Os operadores aritmeticos binarios sao +, -, *, / e %.
Exemplo de operacaodouble x, a; Ü Memoria e alocada para x e aa = 2.0; Ü O valor 2.0 e atribuıdo a ax = 10.5; Ü O valor 10.5 e atribuıdo a x
x = a*x; Ü O produto (21.0) e atribuıdo a x
Exemplo com inteiros
int i=3, j=2, k;k = i/j; Ü k passa a valer 1 e nao 1.5k = j/i; Ü k passa a valer 0 e nao 0.66...
% e o operador modulo ou resto: calcula o resto da divisaodo primeiro operando pelo segundo. Os operandos devemser inteiros: 3%2 = 1, 4%2 = 0
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes Aritmeticas Simples
Os operadores aritmeticos binarios sao +, -, *, / e %.
Exemplo de operacaodouble x, a; Ü Memoria e alocada para x e aa = 2.0; Ü O valor 2.0 e atribuıdo a ax = 10.5; Ü O valor 10.5 e atribuıdo a xx = a*x; Ü O produto (21.0) e atribuıdo a x
Exemplo com inteiros
int i=3, j=2, k;k = i/j; Ü k passa a valer 1 e nao 1.5k = j/i; Ü k passa a valer 0 e nao 0.66...
% e o operador modulo ou resto: calcula o resto da divisaodo primeiro operando pelo segundo. Os operandos devemser inteiros: 3%2 = 1, 4%2 = 0
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes Aritmeticas Simples
Os operadores aritmeticos binarios sao +, -, *, / e %.
Exemplo de operacaodouble x, a; Ü Memoria e alocada para x e aa = 2.0; Ü O valor 2.0 e atribuıdo a ax = 10.5; Ü O valor 10.5 e atribuıdo a xx = a*x; Ü O produto (21.0) e atribuıdo a x
Exemplo com inteirosint i=3, j=2, k;
k = i/j; Ü k passa a valer 1 e nao 1.5k = j/i; Ü k passa a valer 0 e nao 0.66...
% e o operador modulo ou resto: calcula o resto da divisaodo primeiro operando pelo segundo. Os operandos devemser inteiros: 3%2 = 1, 4%2 = 0
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes Aritmeticas Simples
Os operadores aritmeticos binarios sao +, -, *, / e %.
Exemplo de operacaodouble x, a; Ü Memoria e alocada para x e aa = 2.0; Ü O valor 2.0 e atribuıdo a ax = 10.5; Ü O valor 10.5 e atribuıdo a xx = a*x; Ü O produto (21.0) e atribuıdo a x
Exemplo com inteirosint i=3, j=2, k;k = i/j;
Ü k passa a valer 1 e nao 1.5k = j/i; Ü k passa a valer 0 e nao 0.66...
% e o operador modulo ou resto: calcula o resto da divisaodo primeiro operando pelo segundo. Os operandos devemser inteiros: 3%2 = 1, 4%2 = 0
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes Aritmeticas Simples
Os operadores aritmeticos binarios sao +, -, *, / e %.
Exemplo de operacaodouble x, a; Ü Memoria e alocada para x e aa = 2.0; Ü O valor 2.0 e atribuıdo a ax = 10.5; Ü O valor 10.5 e atribuıdo a xx = a*x; Ü O produto (21.0) e atribuıdo a x
Exemplo com inteirosint i=3, j=2, k;k = i/j; Ü k passa a valer 1 e nao 1.5
k = j/i; Ü k passa a valer 0 e nao 0.66...
% e o operador modulo ou resto: calcula o resto da divisaodo primeiro operando pelo segundo. Os operandos devemser inteiros: 3%2 = 1, 4%2 = 0
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes Aritmeticas Simples
Os operadores aritmeticos binarios sao +, -, *, / e %.
Exemplo de operacaodouble x, a; Ü Memoria e alocada para x e aa = 2.0; Ü O valor 2.0 e atribuıdo a ax = 10.5; Ü O valor 10.5 e atribuıdo a xx = a*x; Ü O produto (21.0) e atribuıdo a x
Exemplo com inteirosint i=3, j=2, k;k = i/j; Ü k passa a valer 1 e nao 1.5k = j/i;
Ü k passa a valer 0 e nao 0.66...
% e o operador modulo ou resto: calcula o resto da divisaodo primeiro operando pelo segundo. Os operandos devemser inteiros: 3%2 = 1, 4%2 = 0
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes Aritmeticas Simples
Os operadores aritmeticos binarios sao +, -, *, / e %.
Exemplo de operacaodouble x, a; Ü Memoria e alocada para x e aa = 2.0; Ü O valor 2.0 e atribuıdo a ax = 10.5; Ü O valor 10.5 e atribuıdo a xx = a*x; Ü O produto (21.0) e atribuıdo a x
Exemplo com inteirosint i=3, j=2, k;k = i/j; Ü k passa a valer 1 e nao 1.5k = j/i; Ü k passa a valer 0 e nao 0.66...
% e o operador modulo ou resto: calcula o resto da divisaodo primeiro operando pelo segundo. Os operandos devemser inteiros: 3%2 = 1, 4%2 = 0
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes Aritmeticas Simples
Os operadores aritmeticos binarios sao +, -, *, / e %.
Exemplo de operacaodouble x, a; Ü Memoria e alocada para x e aa = 2.0; Ü O valor 2.0 e atribuıdo a ax = 10.5; Ü O valor 10.5 e atribuıdo a xx = a*x; Ü O produto (21.0) e atribuıdo a x
Exemplo com inteirosint i=3, j=2, k;k = i/j; Ü k passa a valer 1 e nao 1.5k = j/i; Ü k passa a valer 0 e nao 0.66...
% e o operador modulo ou resto: calcula o resto da divisaodo primeiro operando pelo segundo. Os operandos devemser inteiros: 3%2 = 1, 4%2 = 0
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Precedencia
Ü Numa expressao composta de varias operacoesaritmeticas, a ordem com que elas sao executadasdepende da precedencia dos operadores.
Ü *, / e % tem a mesma precedencia, e temprecedencia sobre as operacoes + e−.
Ü No caso de operacoes com mesma precedencia, aexecucao e feita da esquerda para a direita.
double x,y;x = 1.0;
y = 1./x+1.0;
A operacao 1./x serarealizada primeiro, e o valorde y sera
2.0
Para executar a divisao porx + 1.0 e preciso usar ().O valor de y sera 0.5
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Precedencia
Ü Numa expressao composta de varias operacoesaritmeticas, a ordem com que elas sao executadasdepende da precedencia dos operadores.
Ü *, / e % tem a mesma precedencia, e temprecedencia sobre as operacoes + e−.
Ü No caso de operacoes com mesma precedencia, aexecucao e feita da esquerda para a direita.
double x,y;x = 1.0;
y = 1./x+1.0;
A operacao 1./x serarealizada primeiro, e o valorde y sera
2.0
Para executar a divisao porx + 1.0 e preciso usar ().O valor de y sera 0.5
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Precedencia
Ü Numa expressao composta de varias operacoesaritmeticas, a ordem com que elas sao executadasdepende da precedencia dos operadores.
Ü *, / e % tem a mesma precedencia, e temprecedencia sobre as operacoes + e−.
Ü No caso de operacoes com mesma precedencia, aexecucao e feita da esquerda para a direita.
double x,y;x = 1.0;
y = 1./x+1.0;
A operacao 1./x serarealizada primeiro, e o valorde y sera 2.0
Para executar a divisao porx + 1.0 e preciso usar ().O valor de y sera 0.5
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Precedencia
Ü Numa expressao composta de varias operacoesaritmeticas, a ordem com que elas sao executadasdepende da precedencia dos operadores.
Ü *, / e % tem a mesma precedencia, e temprecedencia sobre as operacoes + e−.
Ü No caso de operacoes com mesma precedencia, aexecucao e feita da esquerda para a direita.
double x,y;x = 1.0;
y = 1./(x+1.0);
A operacao 1./x serarealizada primeiro, e o valorde y sera 2.0
Para executar a divisao porx + 1.0 e preciso usar ().O valor de y sera
0.5
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Precedencia
Ü Numa expressao composta de varias operacoesaritmeticas, a ordem com que elas sao executadasdepende da precedencia dos operadores.
Ü *, / e % tem a mesma precedencia, e temprecedencia sobre as operacoes + e−.
Ü No caso de operacoes com mesma precedencia, aexecucao e feita da esquerda para a direita.
double x,y;x = 1.0;
y = 1./(x+1.0);
A operacao 1./x serarealizada primeiro, e o valorde y sera 2.0
Para executar a divisao porx + 1.0 e preciso usar ().O valor de y sera 0.5
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes entre Variaveis de TiposDistintos
6 Um operador atua entre operandos de tipos distintosÜ o operando de tipo mais restrito sera promovido aotipo menos restrito.
6 Cuidado quando o resultado e atribuıdo a uma variavelde tipo mais restrita!
double x,y,z,w;int a,b;x = 2.0;a = 1;
y = a/x; y vale 0.5b = a/x; b vale 0w = a/2; w vale 0.z = 1/2; z vale 0.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes entre Variaveis de TiposDistintos
6 Um operador atua entre operandos de tipos distintosÜ o operando de tipo mais restrito sera promovido aotipo menos restrito.
6 Cuidado quando o resultado e atribuıdo a uma variavelde tipo mais restrita!
double x,y,z,w;int a,b;x = 2.0;a = 1;
y = a/x; y vale 0.5b = a/x; b vale 0w = a/2; w vale 0.z = 1/2; z vale 0.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes entre Variaveis de TiposDistintos
6 Um operador atua entre operandos de tipos distintosÜ o operando de tipo mais restrito sera promovido aotipo menos restrito.
6 Cuidado quando o resultado e atribuıdo a uma variavelde tipo mais restrita!
double x,y,z,w;int a,b;x = 2.0;a = 1;
y = a/x; y vale 0.5b = a/x; b vale 0w = a/2; w vale 0.z = 1/2; z vale 0.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes entre Variaveis de TiposDistintos
6 Um operador atua entre operandos de tipos distintosÜ o operando de tipo mais restrito sera promovido aotipo menos restrito.
6 Cuidado quando o resultado e atribuıdo a uma variavelde tipo mais restrita!
double x,y,z,w;int a,b;x = 2.0;a = 1;y = a/x;
y vale 0.5b = a/x; b vale 0w = a/2; w vale 0.z = 1/2; z vale 0.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Operacoes entre Variaveis de TiposDistintos
6 Um operador atua entre operandos de tipos distintosÜ o operando de tipo mais restrito sera promovido aotipo menos restrito.
6 Cuidado quando o resultado e atribuıdo a uma variavelde tipo mais restrita!
° Todas asdeclaracoesantes doprimeirocomandoexecutavel
/* Calculo da media ponderadaData: 09/04/2017 */
# include <stdio.h>int main( ){
int peso1 = 1;int peso2 = 2; // pesosdouble n1,n2; // valores de entradadouble numerador,denominador;double media;n1 = 2.1;n2 = 4.2;
/* Calculo da media ponderada: */numerador = peso1*n1 + peso2*n2;denominador = peso1 + peso2;media = numerador / denominador ;
// Impressao do resultadoprintf(”A media de %f e %f com pesos %d e %d e %f \n”,
n1, n2, peso1, peso2, media);return 0;
}
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Exemplo de Programa
Calculo da media ponderada entre dois numeros
¬ headers organise aslinhas® comentarios¯ identacao° Todas asdeclaracoesantes doprimeirocomandoexecutavel
/* Calculo da media ponderadaData: 09/04/2017 */
# include <stdio.h>int main( ){
int peso1 = 1;int peso2 = 2; // pesosdouble n1,n2; // valores de entradadouble numerador,denominador;double media;n1 = 2.1;n2 = 4.2;
/* Calculo da media ponderada: */numerador = peso1*n1 + peso2*n2;denominador = peso1 + peso2;media = numerador / denominador ;
// Impressao do resultadoprintf(”A media de %f e %f com pesos %d e %d e %f \n”,
n1, n2, peso1, peso2, media);return 0;
}
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Exemplo de Programa
Calculo da media ponderada entre dois numeros
¬ headers organise aslinhas® comentarios¯ identacao° Todas asdeclaracoesantes doprimeirocomandoexecutavel
/* Calculo da media ponderadaData: 09/04/2017 */
# include <stdio.h>int main( ){
int peso1 = 1;int peso2 = 2; // pesosdouble n1,n2; // valores de entradadouble numerador,denominador;double media;n1 = 2.1;n2 = 4.2;
/* Calculo da media ponderada: */numerador = peso1*n1 + peso2*n2;denominador = peso1 + peso2;media = numerador / denominador ;
// Impressao do resultadoprintf(”A media de %f e %f com pesos %d e %d e %f \n”,
n1, n2, peso1, peso2, media);return 0;
}
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Leitura de Dados
å A funcao para leitura
e seus argumentos:1 String com os campos de formatacao, correspondentes
a cada variavel a ser lida, na ordem2 lista de enderecos das variaveis. A lista e separada por
vırgulas
scanf();
å O operador & fornece o endereco da memoria de umadeterminada variavel
å Mais especificacoes de formato para o scanf,%ld: long int, %lf ou %lg: double.Obs.: Nao sao necessarias para o printf
å A string de formatacao deve conter apenas asespecificacoes de formato. Nao usar \n, virgula ouqualquer outro caracter.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Leitura de Dados
å A funcao para leitura e seus argumentos:1 String com os campos de formatacao, correspondentes
a cada variavel a ser lida, na ordem
2 lista de enderecos das variaveis. A lista e separada porvırgulas
scanf("%f %d");
å O operador & fornece o endereco da memoria de umadeterminada variavel
å Mais especificacoes de formato para o scanf,%ld: long int, %lf ou %lg: double.Obs.: Nao sao necessarias para o printf
å A string de formatacao deve conter apenas asespecificacoes de formato. Nao usar \n, virgula ouqualquer outro caracter.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Leitura de Dados
å A funcao para leitura e seus argumentos:1 String com os campos de formatacao, correspondentes
a cada variavel a ser lida, na ordem2 lista de enderecos das variaveis. A lista e separada por
vırgulasscanf("%f %d", &posicao, &contador);
å O operador & fornece o endereco da memoria de umadeterminada variavel
å Mais especificacoes de formato para o scanf,%ld: long int, %lf ou %lg: double.Obs.: Nao sao necessarias para o printf
å A string de formatacao deve conter apenas asespecificacoes de formato. Nao usar \n, virgula ouqualquer outro caracter.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Leitura de Dados
å A funcao para leitura e seus argumentos:1 String com os campos de formatacao, correspondentes
a cada variavel a ser lida, na ordem2 lista de enderecos das variaveis. A lista e separada por
vırgulasscanf("%f %d", &posicao, &contador);
å O operador & fornece o endereco da memoria de umadeterminada variavel
å Mais especificacoes de formato para o scanf,%ld: long int, %lf ou %lg: double.Obs.: Nao sao necessarias para o printf
å A string de formatacao deve conter apenas asespecificacoes de formato. Nao usar \n, virgula ouqualquer outro caracter.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Leitura de Dados
å A funcao para leitura e seus argumentos:1 String com os campos de formatacao, correspondentes
a cada variavel a ser lida, na ordem2 lista de enderecos das variaveis. A lista e separada por
vırgulasscanf("%f %d", &posicao, &contador);
å O operador & fornece o endereco da memoria de umadeterminada variavel
å Mais especificacoes de formato para o scanf,%ld: long int, %lf ou %lg: double.Obs.: Nao sao necessarias para o printf
å A string de formatacao deve conter apenas asespecificacoes de formato. Nao usar \n, virgula ouqualquer outro caracter.
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Observacoes Relativas ao Comando scanf
Ü O programa ficara esperando a digitacao de tantosdados quantos forem especificados na lista deformatos.
Ü Espacos em branco, tabs e caracteres de nova linha(tecla enter) sao ignorados na leitura.
Ü E aconselhavel colocar sempre um printf com umamensagem avisando que o programa esta esperandouma certa variavel.
Ü As principais fontes de erro no uso de scanf sao:6 colocar o nome da variavel e nao seu endereco,6 ter listas de formatos incompatıvel com a lista de
enderecos, seja por numero de campos seja portipo de variavel.
Esses erros em geral nao sao detectados nacompilacao!
Met Comp
Compiladores
C
Exercıcio
C: Literais
C: Variaveis
Exercıcio
C: Memoria
Exemplo
Operacoes
Exercıcio
Leitura
Exercıcio
Funcoes
Bases
Exercıcios
å Baixe da pagina do curso o programa mostrascanf.c.Estude seu conteudo, compile-o e execute-o. Analise seuresultado.
å Escreva um algoritmo para resolver cada um dosproblemas abaixo. Depois escreva um programa C queimplemente o seu algoritmo
1 Escreva um programa que pede o valor de um anguloem graus, pelo teclado, calcula e escreve na tela seuvalor em radianos.