ces-10 introduÇÃo À computaÇÃo aulas práticas – 2013 capítulo ii confecção de tabelas
TRANSCRIPT
CES-10 INTRODUÇÃO CES-10 INTRODUÇÃO À COMPUTAÇÃOÀ COMPUTAÇÃO
Aulas Práticas – 2013Aulas Práticas – 2013
Capítulo II Capítulo II
Confecção de TabelasConfecção de Tabelas
Programa 2.1: Numeração das linhasPrograma 2.1: Numeração das linhas
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int i, n;int i, n;
printf ("Digite o numero de repeticoes: "); printf ("Digite o numero de repeticoes: ");
scanf ("%d", &n);scanf ("%d", &n);
i = 1;i = 1;
while (i <= n) {while (i <= n) {
printf ("\n%d Ola pessoal!", i);printf ("\n%d Ola pessoal!", i);
i = i + 1;i = i + 1;
}}
printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: ");
getch ();getch ();
}}
Seja o programa a seguir, quase igual ao Programa 1.3
Digitar, salvar e executar este programa
Digitar um valor ≥ 10 para ‘n’
Quando n ≥ 10, tem-se um desalinhamento
Alterar o programa para:Alterar o programa para:
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int i, n;int i, n;
printf ("Digite o numero de repeticoes: "); printf ("Digite o numero de repeticoes: ");
scanf ("%d", &n);scanf ("%d", &n);
i = 1;i = 1;
while (i <= n) {while (i <= n) {
printf ("\n%4d Ola pessoal!", i);printf ("\n%4d Ola pessoal!", i);
i = i + 1;i = i + 1;
}}
printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: ");
getch ();getch ();
}}
%4d: escreve o valor de ‘i’ num espaço de 4 casas na tela
O valor de ‘i’ fica justaposto à direitaExemplo: se
Na tela:
i 43
43_
4 casas
Se fosse %-4d: justaposição à esquerda:
Na tela:
43 _
4 casas
Alterar o programa e executar:Alterar o programa e executar:
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int i, n;int i, n;
printf ("Digite o numero de repeticoes: "); printf ("Digite o numero de repeticoes: ");
scanf ("%d", &n);scanf ("%d", &n);
printf ("\n i mensagem");printf ("\n i mensagem");
printf ("\n---------------------"); printf ("\n---------------------");
i = 1;i = 1;
while (i <= n) {while (i <= n) {
printf ("\n%4d Ola pessoal!", i);printf ("\n%4d Ola pessoal!", i);
i = i + 1;i = i + 1;
}}
printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: ");
getch ();getch ();
}}
Deixa a saída com formato de tabela
A tabela tem um cabeçalho bem simples
Alterar o programa e executar:Alterar o programa e executar:
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int i, n;int i, n;
printf ("Digite o numero de repeticoes: ");printf ("Digite o numero de repeticoes: ");
scanf ("%d", &n);scanf ("%d", &n);
printf ("\n i | mensagem");printf ("\n i | mensagem");
printf ("\n-----|-----------------");printf ("\n-----|-----------------");
i = 1;i = 1;
while (i <= n) {while (i <= n) {
printf ("\n%4d | Ola pessoal", i);printf ("\n%4d | Ola pessoal", i);
i = i + 1;i = i + 1;
}}
printf ("\n\nDigite algo para encerrar: ");printf ("\n\nDigite algo para encerrar: ");
getch ();getch ();
}}
Usa-se a barra vertical ‘|’ para demarcar a separação das colunas
A colocação de ‘|’ deve ser coerente nos 3 printf’s
Exercício: Colocar uma moldura na tabela, Exercício: Colocar uma moldura na tabela, como esta:como esta:
Exercício: Deslocar a tabela mais para o Exercício: Deslocar a tabela mais para o meio da tela, tal como:meio da tela, tal como:
Programa 2.2: Tabela para x versus xPrograma 2.2: Tabela para x versus x22 (x – (x – inteiro)inteiro)
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main ( ) {void main ( ) {
int x, n;int x, n;
printf ("Digite o limite superior da tabela: ");printf ("Digite o limite superior da tabela: ");
scanf ("%d", &n);scanf ("%d", &n);
printf ("\n x x^2");printf ("\n x x^2");
printf (“\n---------------------");printf (“\n---------------------");
x = 1;x = 1;
while (x <= n) {while (x <= n) {
printf (“\n%4d%10d", x, x*x);printf (“\n%4d%10d", x, x*x);
x = x + 1;x = x + 1;
}}
printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: ");
getch ();getch ();
} }
O limite inferior é 1
O limite superior é ‘n’ (digitado)
Em cada linha, um valor de x e esse valor ao quadrado
Exercício: Demarcar a separação das Exercício: Demarcar a separação das colunas, fazer uma moldura e deslocar a colunas, fazer uma moldura e deslocar a tabela mais para o meio da tela, tal como:tabela mais para o meio da tela, tal como:
Programa 2.3: Tabela para x (int) versus Programa 2.3: Tabela para x (int) versus sqrt(x) (real)sqrt(x) (real)
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
#include <math.h>#include <math.h>
void main ( ) {void main ( ) {
int x, n;int x, n;
printf ("Digite o limite superior da tabela: ");printf ("Digite o limite superior da tabela: ");
scanf ("%d", &n);scanf ("%d", &n);
printf ("\n x sqrt(x)");printf ("\n x sqrt(x)");
printf ("\n---------------------");printf ("\n---------------------");
x = 1;x = 1;
while (x <= n) {while (x <= n) {
printf ("\n%4d%15.8f", x, sqrt(x));printf ("\n%4d%15.8f", x, sqrt(x));
x = x + 1;x = x + 1;
}}
printf ("\n\nDigite algo para encerrar: "); getch ();printf ("\n\nDigite algo para encerrar: "); getch ();
}}
%15.8f: escreve o valor real de sqrt(x) num espaço de 15 casas na tela, com 8 casas após o ponto decimal
Contém a função sqrt
Alterar para ler também o limite inferior, e Alterar para ler também o limite inferior, e executar:executar:
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
#include <math.h>#include <math.h>
void main ( ) {void main ( ) {
int x, m, n;int x, m, n;
printf ("Digite os limites inferior e superior da tabela: ");printf ("Digite os limites inferior e superior da tabela: ");
scanf ("%d%d", &m, &n);scanf ("%d%d", &m, &n);
printf ("\n x sqrt(x)");printf ("\n x sqrt(x)");
printf ("\n---------------------");printf ("\n---------------------");
x = m;x = m;
while (x <= n) {while (x <= n) {
printf ("\n%4d%15.8f", x, sqrt(x));printf ("\n%4d%15.8f", x, sqrt(x));
x = x + 1;x = x + 1;
}}
printf ("\n\nDigite algo para encerrar: "); getch ();printf ("\n\nDigite algo para encerrar: "); getch ();
}}
Alterar para ler também o limite inferior, e Alterar para ler também o limite inferior, e executar:executar:
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
#include <math.h>#include <math.h>
void main ( ) {void main ( ) {
int x, m, n;int x, m, n;
printf ("Digite os limites inferior e superior da tabela: ");printf ("Digite os limites inferior e superior da tabela: ");
scanf ("%d%d", &m, &n);scanf ("%d%d", &m, &n);
printf ("\n x sqrt(x)");printf ("\n x sqrt(x)");
printf ("\n---------------------");printf ("\n---------------------");
x = m;x = m;
while (x <= n) {while (x <= n) {
printf ("\n%4d%15.8f", x, sqrt(x));printf ("\n%4d%15.8f", x, sqrt(x));
x = x + 1;x = x + 1;
}}
printf ("\n\nDigite algo para encerrar: "); getch ();printf ("\n\nDigite algo para encerrar: "); getch ();
}}
Haverá problema para x < 0
Uma solução: usar comando Uma solução: usar comando ifif::
#include <stdio.h>#include <stdio.h>#include <conio.h>#include <conio.h>#include <math.h>#include <math.h>
void main ( ) {void main ( ) {int x, m, n;int x, m, n;printf ("Digite os limites inferior e superior da tabela: ");printf ("Digite os limites inferior e superior da tabela: ");scanf ("%d%d", &m, &n);scanf ("%d%d", &m, &n);printf ("\n x sqrt(x)");printf ("\n x sqrt(x)");
printf ("\n---------------------");printf ("\n---------------------");x = m;x = m;while (x <= n) {while (x <= n) {
if (x >= 0)if (x >= 0)printf ("\n%4d%15.8f", x, sqrt(x));printf ("\n%4d%15.8f", x, sqrt(x));
elseelse printf ("\n%4d%15s", x, "----------");printf ("\n%4d%15s", x, "----------");
x = x + 1;x = x + 1;}}
printf ("\n\nDigite algo para encerrar: "); getch ();printf ("\n\nDigite algo para encerrar: "); getch ();}}
Comando condicional if-else:
Se x >= 0, executa o primeiro printfSenão, executa o segundo printf %15s: formato
para escrever uma cadeia de caracteres
Escreve ---------- num espaço de 15 casas justaposto à direita
Exercício do Lab 2: Fazer um programa para Exercício do Lab 2: Fazer um programa para exibir uma única tabela com as seguintes exibir uma única tabela com as seguintes funções:funções:
Função 1: Função 1: xx33 - 8x - 8x22 - 20 - 20 Função 2: Função 2: tan (x*tan (x*/180)/180) Função 3: Função 3: xx55/log/log1010xx
Os limites Os limites mm e e nn do intervalo são inteiros e do intervalo são inteiros e devem ser digitados pelo operadordevem ser digitados pelo operador
A tabela deve ter demarcação da separação A tabela deve ter demarcação da separação das das colunascolunas, , molduramoldura e e deslocamentodeslocamento mais mais para o meio da telapara o meio da tela
No intervalo [m, n]
Função tan (x), para x dado em grausFunção tan (x), para x dado em graus
O arquivo O arquivo math.hmath.h tem a função tem a função tan (x)tan (x), para , para xx dado em dado em radianosradianos
Então, para cada valor de Então, para cada valor de xx em graus, a em graus, a chamada da função deve ser:chamada da função deve ser:
tan (x*tan (x*ππ/180)/180), ou seja, , ou seja, tan (x*3.14159/180)tan (x*3.14159/180)
A precisão de A precisão de ππ fica a critério do programador fica a critério do programador
Para Para x = x = 90 90 e e 270 270 a função tem a função tem problemasproblemas
Função xFunção x55/log/log1010x :x :
O arquivo O arquivo math.hmath.h tem as seguintes funções: tem as seguintes funções:
pow (x, y)pow (x, y), para calcular , para calcular xxyy
log10 (x)log10 (x), para calcular , para calcular loglog1010xx
Para Para x x 0 0 e e x = 1x = 1, a função tem problemas, a função tem problemas
Exemplo para as três funções pedidas:Exemplo para as três funções pedidas:
Programa 2.4: Variáveis e valores do tipo Programa 2.4: Variáveis e valores do tipo caracterecaractere
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
char c;char c;
printf ("Aperte uma tecla: ");printf ("Aperte uma tecla: ");
c = getche ();c = getche ();
printf ("\ndecimal = %d, caractere = %c", c, c);printf ("\ndecimal = %d, caractere = %c", c, c);
printf ("\n\nDigite algo para encerrar: ");printf ("\n\nDigite algo para encerrar: ");
getch ();getch ();
}}Variável do tipo caractere: destina-se a guardar um caractere num dado momento
Caractere Caractere é um símbolo de grafiaé um símbolo de grafia
Exemplos de caracteres:Exemplos de caracteres:
Letras maiúsculas e minúsculas: Letras maiúsculas e minúsculas: A, B, ... , Z, A, B, ... , Z, a, b, ... , za, b, ... , z
Dígitos decimais: Dígitos decimais: 0, 1, 2, ... , 8, 90, 1, 2, ... , 8, 9 Operadores aritméticos: Operadores aritméticos: +, -, *, /+, -, *, / Separadores: Separadores: (, ), [, ], {, }(, ), [, ], {, } Caracteres de pontuação: Caracteres de pontuação: . , ; ! ? :. , ; ! ? : Caracteres especiais: Caracteres especiais: @, #, $, %, &@, #, $, %, & Caracteres de controle: muda linha Caracteres de controle: muda linha (nl)(nl), ,
tabulação tabulação (ht), (ht), etc.etc.
Cada caractere tem sua Cada caractere tem sua representação internarepresentação interna segundo a segundo a tabela ASCIItabela ASCII::
0 1 2 3 4 5 6 7 8 9
0 nul
bel
bs ht
10 nl cr
20 esc
30 sp ! “ # $ % & ‘
40 ( ) * + , - . / 0 1
50 2 3 4 5 6 7 8 9 : ;
60 < = > ? @ A B C D E
70 F G H I J K L M N O
80 P Q R S T U V W X Y
90 Z [ \ ] ^ _ ` a b c
100
d e f g h i j k l m
110
n o p q r s t u v w
120
x y z { | } ~ del
Exemplos:
ASCII (‘K’) = 75
ASCII (‘&’) = 38
ASCII (‘{’) = 123
Esses valores são as representações internas dos caracteres
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
char c;char c;
printf ("Aperte uma tecla: ");printf ("Aperte uma tecla: ");
c = getche ();c = getche ();
printf ("\ndecimal = %d, caractere = %c", c, c);printf ("\ndecimal = %d, caractere = %c", c, c);
printf ("\n\nDigite algo para encerrar: ");printf ("\n\nDigite algo para encerrar: ");
getch ();getch ();
}}
Algumas execuções:
c = getche() : espera o operador digitar uma tecla
Em seguida, a variável ‘c’ recebe o caractere correspondente a essa tecla
Então o resultado da função “getche” é o caractere lido da digitação
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
char c;char c;
printf ("Aperte uma tecla: ");printf ("Aperte uma tecla: ");
c = getche ();c = getche ();
printf ("\ndecimal = %d, caractere = %c", c, c);printf ("\ndecimal = %d, caractere = %c", c, c);
printf ("\n\nDigite algo para encerrar: ");printf ("\n\nDigite algo para encerrar: ");
getch ();getch ();
}}
Algumas execuções:
%d: escreve a representação interna do caractere guardado na variável ‘c’
%c: escreve o próprio caractere guardado na variável ‘c’
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
char c;char c;
printf ("Aperte uma tecla: ");printf ("Aperte uma tecla: ");
c = getche ();c = getche ();
printf ("\ndecimal = %d, caractere = %c", c, c);printf ("\ndecimal = %d, caractere = %c", c, c);
printf ("\n\nDigite algo para encerrar: ");printf ("\n\nDigite algo para encerrar: ");
getch ();getch ();
}}
Algumas execuções:
Diferença entre getche e getch:
getche: o caractere digitado aparece no vídeo (dá eco no vídeo)
getch: não dá eco no vídeo