FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO (cont)
ENTRADA E SAÍDA DE DADOS
As linguagens de programação possuem uma grande variedade de comandos de entrada e saída. Os mais comuns são:
As linguagens de programação possuem uma grande variedade de comandos de entrada e saída. Os mais comuns são: leia (read): permite a entrada de dados a partir de dispositivos de entrada (em geral, o teclado).
As linguagens de programação possuem uma grande variedade de comandos de entrada e saída. Os mais comuns são: leia (read): permite a entrada de dados a partir de dispositivos de entrada (em geral, o teclado). escreva (write): permite a exibição de dados em dispositivos de saída (em geral, o monitor de vídeo).
Exemplo: um programa que receba dois valores numéricos e forneça a soma desses valores. ENTRADA PROCESSAMENTO SAÍDA n1,n2 soma n1+n2 soma
Exemplo: um programa que receba dois valores numéricos e forneça a soma desses valores. ENTRADA PROCESSAMENTO SAÍDA n1,n2 soma n1+n2 soma Exemplo: 2, 3 5 soma n1+n2
Em pseudocódigo: leia(n1,n2); soma n1 + n2; escreva(soma);
Em Pascal: program Soma2NumInteiros; var n1,n2,soma: integer; begin read(n1,n2); soma := n1 + n2; write(soma); end.
Em Pascal: program Soma2NumInteiros; var n1,n2,soma: integer; begin read(n1,n2); soma := n1 + n2; write(soma); end. identificação do programa
Em Pascal: program Soma2NumInteiros; var n1,n2,soma: integer; begin read(n1,n2); soma := n1 + n2; write(soma); end. identificação do programa declaração das variáveis
Em Pascal: program Soma2NumInteiros; var n1,n2,soma: integer; begin read(n1,n2); soma := n1 + n2; write(soma); end. corpo principal identificação do programa declaração das variáveis
Em Pascal: program Soma2NumInteiros; var n1,n2,soma: integer; begin read(n1,n2); soma := n1 + n2; write(soma); end. pontuação ponto final
Versão mais completa: program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça 2 valores'); read(n1,n2); soma := n1 + n2; write('a soma é: ',soma); end.
Versão mais completa: program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça 2 valores'); read(n1,n2); soma := n1 + n2; write('a soma é: ',soma); end. orientação da leitura saída mais clara
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end.
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. Alocação das variáveis
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. n1 n2 soma
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. n1 n2 soma Exibição de mensagem ao usuário
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. Forneça dois valores n1 n2 soma
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. Forneça dois valores n1 n2 soma Leitura (requer participação do usuário)
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. Forneça dois valores 7 3 n1 n2 soma 7 3
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. Forneça dois valores 7 3 n1 n2 soma 7 3 Cálculo e armazenamento da soma
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. Forneça dois valores 7 3 n1 n2 soma 7 3 10
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. Forneça dois valores 7 3 n1 n2 soma 7 3 10 Exibição do resultado
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. Forneça dois valores 7 3 A soma é 10 n1 n2 soma 7 3 10
EXECUÇÃO program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end. Forneça dois valores 7 3 A soma é 10 n1 n2 soma 7 3 10 Fim do programa
Observe que no comando write podemos empregar tanto variáveis como constantes cadeias de caracteres. write('a soma é ',soma); soma 10
Observe que no comando write podemos empregar tanto variáveis como constantes cadeias de caracteres. write('a soma é ',soma); A soma é 10 Variáveis: será exibido seu conteúdo Cadeias de caracteres: serão exibidas tal e qual especificadas entre aspas (em Pascal, empregam-se aspas simples) soma 10
Observe que no comando write podemos empregar tanto variáveis como constantes cadeias de caracteres. write('a soma é ',soma); A soma é 10 Variáveis: será exibido seu conteúdo Cadeias de caracteres: serão exibidas tal e qual especificadas entre aspas (em Pascal, empregam-se aspas simples) soma 10 Atenção ao uso do caractere espaço
Observe que no comando write podemos empregar tanto variáveis como constantes cadeias de caracteres. write('a soma é', soma); A soma é10 Variáveis: será exibido seu conteúdo Cadeias de caracteres: serão exibidas tal e qual especificadas entre aspas (em Pascal, empregam-se aspas simples) soma 10 se não estiver entre as aspas, não terá efeito nenhum.
write versus writeln No exemplo anterior empregamos as duas variações program Soma2NumInteiros; var n1,n2,soma: integer; begin writeln('forneça dois valores'); read(n1,n2); soma := n1 + n2; write('a soma é ',soma); end.
write versus writeln Quando empregamos writeln, após a execução do comando, o cursor salta automaticamente para a próxima linha. Assim, o próxima saída será embaixo da anterior.
write versus writeln Quando empregamos writeln, após a execução do comando, o cursor salta automaticamente para a próxima linha. Assim, o próxima saída será embaixo da anterior. Já quando empregamos write, o cursor permanece na mesma linha (a próxima saída será imediatamente após)
Alguns exemplos write('bom '); write('dia!'); end.
Alguns exemplos write('bom '); write('dia!'); end. Bom dia!
Alguns exemplos write('bom '); write('dia!'); end. Bom dia!
Alguns exemplos write('bom '); write('dia!'); end. Bom dia! Observar, novamente, a importância do caractere espaço.
Por outro lado writeln('bom '); write('dia!'); end.
Por outro lado writeln('bom '); write('dia!'); end. Bom dia!
Por outro lado writeln('bom '); write('dia!'); end. Bom dia!
Por outro lado writeln('bom '); write('dia!'); end. Bom dia! Agora, o espaço (embora exibido) não fez qualquer diferença
Opções para a leitura writeln('forneça a idade:'); read(idade); end. Idade
Opções para a leitura writeln('forneça a idade:'); read(idade); end. Idade
Opções para a leitura writeln('forneça a idade:'); read(idade); end. Forneça a idade: Idade
Opções para a leitura writeln('forneça a idade:'); read(idade); end. Forneça a idade: Idade
Opções para a leitura writeln('forneça a idade:'); read(idade); end. Forneça a idade: 20 Idade 20
Por outro lado write('forneça a idade: '); read(idade); end. Idade
Por outro lado write('forneça a idade: '); read(idade); end. Idade
Por outro lado write('forneça a idade: '); read(idade); end. Forneça a idade: Idade
Por outro lado write('forneça a idade: '); read(idade); end. Forneça a idade: Idade
Por outro lado write('forneça a idade: '); read(idade); end. Forneça a idade: 20 Como se empregou write, o cursor não saltou de linha Idade 20
OBS: Formatação para o tipo real Quando exibimos através de write/writeln variáveis reais, estas devem ser formatadas.
OBS: Formatação para o tipo real Quando exibimos através de write/writeln variáveis reais, estas devem ser formatadas. Através desse recurso, informamos o formato de exibição (posição e número de casas decimais a serem exibidas).
OBS: Formatação para o tipo real Ex: no trecho abaixo var num: real; begin num := 3.87654321; write(num);
OBS: Formatação para o tipo real Ex: no trecho abaixo var num: real; begin num := 3.87654321; write(num); O valor exibido seria 3.87654321000000E+000
OBS: Formatação para o tipo real Ex: no trecho abaixo var num: real; begin num := 3.87654321; write(num); O valor exibido seria 3.87654321000000E+000 Formato de ponto-flutuante.
OBS: Formatação para o tipo real Formatando var num: real; begin num := 3.87654321; write(num:4:2);
OBS: Formatação para o tipo real Formatando var num: real; begin num := 3.87654321; write(num:4:2); Agora, na saída teríamos 3.88
OBS: Formatação para o tipo real Formatando var num: real; begin num := 3.87654321; write(num:4:2); Agora, na saída teríamos 3.88 Observe o arredondamento
OBS: Formatação para o tipo real Formatando var num: real; begin num := 3.87654321; write(num:4:2); write(num:4:2); posicinamento do último dígito Agora, na saída teríamos 3.88 Observe o arredondamento
OBS: Formatação para o tipo real Formatando var num: real; begin num := 3.87654321; write(num:4:2); write(num:4:2); posicinamento do último dígito Agora, na saída teríamos 3.88 Observe o arredondamento num. de casas decimais
OBS: Formatação para o tipo real Outra formatação.. var num: real; begin num := 3.87654321; write(num:12:4);
OBS: Formatação para o tipo real Outra formatação.. var num: real; begin num := 3.87654321; write(num:12:4); Agora, na saída teríamos bbbbbb3.8765
OBS: Formatação para o tipo real Outra formatação.. var num: real; begin num := 3.87654321; write(num:12:4); Agora, na saída teríamos bbbbbb3.8765 Os caracteres 'b'simbolizam espaços em branco
OBS: Formatação para o tipo real Outra formatação.. var num: real; begin num := 3.87654321; write(num:12:4); Agora, na saída teríamos bbbbbb3.8765 foram acrescentados 6 espaçamentos para que o último caractere ficasse na posição 12.
OPERAÇÕES ARITMÉTICAS
Principais operadores aritméticos
Principais operadores aritméticos 7 div 2 = 3 7 2-1 - 3
Principais operadores aritméticos 7 mod 2 = 1 7 2-1 - 3
Principais operadores aritméticos Observe que mesmo a divisão entre inteiros produz um real
Principais operadores aritméticos x, y, z: integer; z := x / y; Erro: z teria que ser real
Principais operadores aritméticos x, y, z: integer; z := x div y; Neste caso não há problema.
Prioridade dos operadores Prioridade mais alta: multiplicação e divisão * / div mod Prioridade mais baixa: soma e subtração + -
Obs : - Se houver uma seqüência de operadores de igual prioridade, a execução será na ordem em que aparecerem as operações (da esquerda para a direita).
Obs : - Se houver uma seqüência de operadores de igual prioridade, a execução será na ordem em que aparecerem as operações (da esquerda para a direita). - parêntese garantem maior prioridade; Ex: para a expressão 2*(4+2) o resultado será 12 e não 10, que resultaria de 2*4+2.
Atenção para para o caso de divisão seguida de multiplicação!!
Atenção para para o caso de divisão seguida de multiplicação!! O resultado da expressão 8/(4*2) será diferente de 8/4*2. 8 8 * 2 4*2 4
Atenção para para o caso de divisão seguida de multiplicação!! O resultado da expressão 8/(4*2) será diferente de 8/4*2. 8 8 * 2 4*2 4 1 4
Atenção para para o caso de divisão seguida de multiplicação!! O resultado da expressão 8/(4*2) será diferente de 8/4*2. 8 8 * 2 4*2 4 Já no caso de 3*4/2 e 3*(4/2), o resultado será exatamente o mesmo. 3*4 3 * 4 = 2 2
Atenção para para o caso de divisão seguida de multiplicação!! O resultado da expressão 8/(4*2) será diferente de 8/4*2. 8 8 * 2 4*2 4 Já no caso de 3*4/2 e 3*(4/2), o resultado será exatamente o mesmo. 3*4 3 * 4 = 2 2 6 6
Atenção para para o caso de divisão seguida de multiplicação!! O resultado da expressão 8/(4*2) será diferente de 8/4*2. Novamente: 8 8 * 2 um erro comum, 4*2 4 e de difícil detecção. Já no caso de 3*4/2 e 3*(4/2), o resultado será exatamente o mesmo. 3*4 3 * 4 = 2 2
Atenção para para o caso de divisão seguida de multiplicação!! O resultado da expressão 8/(4*2) será diferente de 8/4*2. 8 8 * 2 4*2 4 Já no caso de 3*4/2 e 3*(4/2), o resultado será exatamente o mesmo. 3*4 3 * 4 = 2 2 Na dúvida, é recomendável empregar parênteses para se garantir a ordem de execução desejada.
Desenvolvido com software livre: