capítulo v – comandos de entrada e saída 5.1 – equipamentos de entrada e saída 5.2 – saída...

Post on 22-Apr-2015

135 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Capítulo V – Comandos de Capítulo V – Comandos de Entrada e SaídaEntrada e Saída

5.1 – Equipamentos de entrada e saída5.1 – Equipamentos de entrada e saída

5.2 – Saída no vídeo-texto5.2 – Saída no vídeo-texto

5.3 – Entrada pelo teclado5.3 – Entrada pelo teclado

5.4 – Entrada e saída por arquivos em 5.4 – Entrada e saída por arquivos em discodisco

5.5 – Controle do vídeo-texto5.5 – Controle do vídeo-texto

5.6 – Vídeo-gráfico5.6 – Vídeo-gráfico

5.4 – Entrada e Saída por 5.4 – Entrada e Saída por Arquivos em DiscoArquivos em Disco

5.4.1 – Arquivos-textos e arquivos 5.4.1 – Arquivos-textos e arquivos bináriosbinários

Arquivos: Arquivos: regiões contíguas na memória regiões contíguas na memória secundária, dos mais diversos tamanhos, secundária, dos mais diversos tamanhos, destinadas cada uma a guardar destinadas cada uma a guardar informações informações correlatascorrelatas, usadas para um determinado fim, usadas para um determinado fim

Existem arquivos de Existem arquivos de programasprogramas, arquivos de , arquivos de dadosdados, arquivos de , arquivos de imagensimagens, arquivos com , arquivos com somsom digitalizado, etc.digitalizado, etc.

A A Linguagem CLinguagem C trabalha com trabalha com dois tiposdois tipos de de arquivos:arquivos:

Arquivos-textos:Arquivos-textos:

Seu conteúdo pode ser encarado como uma Seu conteúdo pode ser encarado como uma sequência linear de caracteressequência linear de caracteres

Arquivos de Arquivos de programasprogramas são arquivos-textos são arquivos-textos Alguns arquivos de Alguns arquivos de dadosdados também são também são

Arquivos binários:Arquivos binários:

Podem conter números inteiros e reais em Podem conter números inteiros e reais em binário, textos, imagens, etc.binário, textos, imagens, etc.

Arquivos binários:Arquivos binários:

Tipicamente são sequências lineares de Tipicamente são sequências lineares de estruturasestruturas de mesmo tipo de mesmo tipo

EstruturasEstruturas serão vistas em capítulo serão vistas em capítulo específicoespecífico

Arquivos binários não serão estudados em Arquivos binários não serão estudados em CES-10CES-10

Arquivos-textos:Arquivos-textos:

São os arquivos abordados neste tópicoSão os arquivos abordados neste tópico

Nos arquivos-textos, existe uma Nos arquivos-textos, existe uma divisão em divisão em linhaslinhas proporcionada pelos caracteres proporcionada pelos caracteres ‘\n’‘\n’ ((new linenew line))

Cada um desses caracteres é uma Cada um desses caracteres é uma marca de marca de final de linhafinal de linha

As linhas não têm necessariamente o As linhas não têm necessariamente o mesmo mesmo número de caracteresnúmero de caracteres

Linhas vaziasLinhas vazias são caracterizadas por são caracterizadas por conterem conterem apenas o ‘\n’apenas o ‘\n’ e nada mais e nada mais

5.4.2 – Abertura e fechamento de 5.4.2 – Abertura e fechamento de arquivos-textosarquivos-textos

Dados de entradaDados de entrada para programas podem ser para programas podem ser retirados de retirados de arquivosarquivos, em vez de serem , em vez de serem digitados por meio do digitados por meio do tecladoteclado

ResultadosResultados de um programa podem ser de um programa podem ser gravados num gravados num arquivoarquivo, em vez de aparecerem , em vez de aparecerem no no vídeovídeo

Todo Todo arquivoarquivo da memória secundária precisa da memória secundária precisa ser associadoser associado a uma a uma variávelvariável do tipo do tipo FILE FILE de de um programa, para ser um programa, para ser acessadoacessado por esse por esse programaprograma

Abertura de um arquivo: Abertura de um arquivo: ato de associar um ato de associar um arquivo do disco a uma variável do tipo arquivo do disco a uma variável do tipo FILEFILE

Em Em CC, essa abertura é feita pela função , essa abertura é feita pela função fopenfopen, , pertencente ao arquivo pertencente ao arquivo stdio.hstdio.h

Exemplo:Exemplo: seja o seguinte trecho de programa: seja o seguinte trecho de programa:

FILE *ff;FILE *ff;

ff = fopen ("C:\\ces10\\programas\\dados", ff = fopen ("C:\\ces10\\programas\\dados", "r");"r");

O arquivo O arquivo dadosdados, localizado na sub-pasta , localizado na sub-pasta programasprogramas da pasta da pasta ces10 ces10 do diretório do diretório CC, , será aberto somente para será aberto somente para leiturasleituras

FILE *ff;FILE *ff;

ff = fopen ("C:\\ces10\\programas\\dados", "r");ff = fopen ("C:\\ces10\\programas\\dados", "r");

O arquivo O arquivo dados dados fica associado à variável fica associado à variável ffff, ou , ou seja, tudo o que for realizado em seja, tudo o que for realizado em ffff será feito no será feito no arquivo arquivo dadosdados

Se o Se o arquivo a ser abertoarquivo a ser aberto estiver na estiver na mesma mesma pastapasta que contém o que contém o arquivo do programaarquivo do programa que o que o acessará, apenas o acessará, apenas o nome do arquivonome do arquivo é é necessário:necessário:

Não é necessário informar a Não é necessário informar a localizaçãolocalização do do arquivo:arquivo:

ff = fopen ("dados", "r");ff = fopen ("dados", "r");

FILE *ff;FILE *ff;

ff = fopen ("C:\\ces10\\programas\\dados", "r");ff = fopen ("C:\\ces10\\programas\\dados", "r");

Na Na declaraçãodeclaração de toda variável do tipo de toda variável do tipo FILEFILE,, o asterisco o asterisco ‘*’‘*’ deve ser colocado deve ser colocado antes do seu antes do seu nomenome

Isso é uma Isso é uma característicacaracterística das variáveis do tipo das variáveis do tipo ponteiroponteiro, que serão estudadas em capítulo , que serão estudadas em capítulo específicoespecífico

Variável do tipo Variável do tipo FILEFILE é um é um ponteiroponteiro que que guarda o guarda o endereçoendereço da região de memória para da região de memória para ela reservadaela reservada

Modos de abertura de arquivos-textos:Modos de abertura de arquivos-textos:

A abertura só para A abertura só para leituraleitura ou para ou para leitura leitura inicialinicial de um de um arquivo não existentearquivo não existente falhará falhará

fopenfopen retornará um valor a ser interpretado retornará um valor a ser interpretado como como abertura mal-sucedidaabertura mal-sucedida

Modos de abertura de arquivos-textos:Modos de abertura de arquivos-textos:

Abertura só para Abertura só para escritaescrita ou para escrita ou para escrita inicial: inicial:

Se o arquivo Se o arquivo não existir:não existir: provocará sua provocará sua criaçãocriação

Se o arquivo Se o arquivo já existir:já existir: apagaráapagará todo o seu todo o seu conteúdo, reinicializando-oconteúdo, reinicializando-o

Modos de abertura de arquivos-textos:Modos de abertura de arquivos-textos:

Abertura para Abertura para aumentaraumentar a partir do final: a partir do final:

Se o arquivo Se o arquivo não existir:não existir: provocará sua provocará sua criaçãocriação

Se o arquivo Se o arquivo já existir:já existir: tudo será escrito a tudo será escrito a partir de seu finalpartir de seu finalEm CES-10 só serão

abordados os modos “r” e “w”

Uma variável do tipo Uma variável do tipo FILEFILE ocupa um ocupa um espaçoespaço de vários bytes na memória principal de vários bytes na memória principal

Num dado momento da execução do programa, Num dado momento da execução do programa, apenas um desses bytesapenas um desses bytes pode ser acessado pode ser acessado

Diz-se que existe um Diz-se que existe um cursorcursor posicionado nesse posicionado nesse byte byte

O O cursorcursor pode se pode se movimentarmovimentar ao longo dessa ao longo dessa variável ou arquivo, mediante chamadas de variável ou arquivo, mediante chamadas de funções para funções para leituraleitura ou ou escritaescrita

Ao se Ao se encerraremencerrarem as operações em um arquivo- as operações em um arquivo-texto, deve-se nele executar a operação de texto, deve-se nele executar a operação de fechamentofechamento

– A associação estabelecida por A associação estabelecida por ffopen open é então é então desfeitadesfeita

A função A função fclosefclose, pertencente também ao arquivo , pertencente também ao arquivo stdio.hstdio.h, realiza essa operação, realiza essa operação

Exemplo: fclose (ff)Exemplo: fclose (ff)

O O fechamentofechamento de um arquivo garante que todas de um arquivo garante que todas as alterações realizadas as alterações realizadas na variável a ele na variável a ele associadaassociada redundem também em alterações redundem também em alterações nele nele própriopróprio

Exemplo: Exemplo: seja seja arqarq um arquivo de um arquivo de n n bytes do bytes do diretório do usuáriodiretório do usuário

Seja o seguinte trecho de programa em C:Seja o seguinte trecho de programa em C:

FILE *fl;FILE *fl;

fl = fopen (“arq”, “r+”);fl = fopen (“arq”, “r+”);

Seja também Seja também k < nk < n o número de bytes de o número de bytes de flfl

Ou seja, Ou seja, arqarq não cabe em não cabe em flfl

A seguir um esquema de troca de conteúdo entre A seguir um esquema de troca de conteúdo entre arqarq e e flfl

LogoLogo após a execução de após a execução de fopenfopen: os : os kk 1 1osos bytes bytes de de arqarq são copiados em são copiados em flfl

O cursor do arquivo é posicionado em seu O cursor do arquivo é posicionado em seu inícioinício

fl

arq

0 1 2 k-1

k k+1

n-1

cópia de k bytes

cursor

Após algumas leituras e escritas, o cursor se Após algumas leituras e escritas, o cursor se movimenta para frentemovimenta para frente

As leituras e escritas são feitas apenas em As leituras e escritas são feitas apenas em fl fl (arq(arq fica desatualizado fica desatualizado))

fl

arq

0 1 2 k-1

k k+1

n-1

cursor

Com mais leituras e escritas, o cursor chega ao Com mais leituras e escritas, o cursor chega ao final de final de flfl, mas não de , mas não de arqarq

arq arq continua desatualizadocontinua desatualizado

fl

arq

0 1 2 k-1

k k+1

n-1

cursor

Para acesso ao próximo byte: o conteúdo de Para acesso ao próximo byte: o conteúdo de flfl é copiado de volta em é copiado de volta em arqarq, atualizando-o , atualizando-o

fl

arq

0 1 2 k-1

k k+1

n-1

cópia de k bytes

Os próximos Os próximos kk bytes de bytes de arqarq são copiados em são copiados em flfl

fl

arq

0 1 2 k-1

k k+1

n-1

cópia de k bytes

O cursor vai para o início de fl, mas não de arq

cursor

A execução de A execução de fclosefclose copia copia flfl de volta em de volta em arqarq, , atualizando-oatualizando-o

fl

arq

0 1 2 k-1

k k+1

n-1

cópia de k bytes

5.4.3 – Leitura e escrita em arquivos-5.4.3 – Leitura e escrita em arquivos-textostextos

Em C, a Em C, a leituraleitura e a e a escritaescrita em arquivos-textos em arquivos-textos é feita respectivamente pelas funções é feita respectivamente pelas funções fscanf fscanf e e fprintf fprintf , também pertencentes ao arquivo , também pertencentes ao arquivo stdio.hstdio.h

Formas gerais:Formas gerais:

fscanf (Variavel, CadeiaDeControle, fscanf (Variavel, CadeiaDeControle, OutrosArgumentos);OutrosArgumentos);

fprintf (Variavel, CadeiaDeControle, fprintf (Variavel, CadeiaDeControle, OutrosArgumentos);OutrosArgumentos);

fscanf (Variavel, CadeiaDeControle, fscanf (Variavel, CadeiaDeControle, OutrosArgumentos);OutrosArgumentos);

fprintf (Variavel, CadeiaDeControle, fprintf (Variavel, CadeiaDeControle, OutrosArgumentos);OutrosArgumentos);

CadeiaDeControle e OutrosArgumentosCadeiaDeControle e OutrosArgumentos têm o mesmo significado visto para as funções têm o mesmo significado visto para as funções scanfscanf e e printfprintf

VariavelVariavel é o nome da variável do tipo é o nome da variável do tipo FILEFILE associada ao associada ao arquivoarquivo que sofrerá as operações que sofrerá as operações de de leituraleitura e/ou e/ou escritaescrita

fscanf (Variavel, CadeiaDeControle, fscanf (Variavel, CadeiaDeControle, OutrosArgumentos);OutrosArgumentos);

fprintf (Variavel, CadeiaDeControle, fprintf (Variavel, CadeiaDeControle, OutrosArgumentos);OutrosArgumentos);

O O valor retornadovalor retornado pelas funções pelas funções fscanf fscanf e e fprintf fprintf é o mesmo retornado pelas funções é o mesmo retornado pelas funções scanf scanf e e printfprintf

fscanf fscanf pode ser usada como um detector de pode ser usada como um detector de final de arquivofinal de arquivo

Quando Quando fscanffscanf encontra e lê a marca de final encontra e lê a marca de final de arquivo, ela retorna de arquivo, ela retorna -1 (menos 1)-1 (menos 1)

Exemplo: Exemplo: seja o seguinte trecho de programa:seja o seguinte trecho de programa:

int a, b, soma, x, n; FILE *f1, *f2;int a, b, soma, x, n; FILE *f1, *f2;

soma = 0; n = 0;soma = 0; n = 0;

f1 = fopen ("infile", "r");f1 = fopen ("infile", "r");

f2 = fopen ("outfile", "w");f2 = fopen ("outfile", "w");

x = fscanf(f1, "%d%d", &a, &b);x = fscanf(f1, "%d%d", &a, &b);

printf ("x = %d\n", x);printf ("x = %d\n", x);

while (x > 0) {while (x > 0) {

if (x == 2) {soma += a + b; n += 2;}if (x == 2) {soma += a + b; n += 2;}

else {soma += a; n++;}else {soma += a; n++;}

x = fscanf(f1, "%d%d", &a, &b); printf ("x = %d\n", x = fscanf(f1, "%d%d", &a, &b); printf ("x = %d\n", x);x);

}}

fprintf (f2, "A soma dos %d numeros eh %d", n, soma);fprintf (f2, "A soma dos %d numeros eh %d", n, soma);

fclose (f1); fclose (f2);fclose (f1); fclose (f2);

1 12 43 21 67 23 74 23 10

infile

x = 2x = 2x = 2x = 2x = 1x = -1

No vídeo

A soma dos 9 numeros eh 274

outfile

Encontrou final de arquivo

Mudando o conteúdo de Mudando o conteúdo de infileinfile::

int a, b, soma, x, n; FILE *f1, *f2;int a, b, soma, x, n; FILE *f1, *f2;

soma = 0; n = 0;soma = 0; n = 0;

f1 = fopen ("infile", "r");f1 = fopen ("infile", "r");

f2 = fopen ("outfile", "w");f2 = fopen ("outfile", "w");

x = fscanf(f1, "%d%d", &a, &b);x = fscanf(f1, "%d%d", &a, &b);

printf ("x = %d\n", x);printf ("x = %d\n", x);

while (x > 0) {while (x > 0) {

if (x == 2) {soma += a + b; n += 2;}if (x == 2) {soma += a + b; n += 2;}

else {soma += a; n++;}else {soma += a; n++;}

x = fscanf(f1, "%d%d", &a, &b); printf ("x = %d\n", x = fscanf(f1, "%d%d", &a, &b); printf ("x = %d\n", x);x);

}}

fprintf (f2, "A soma dos %d numeros eh %d", n, soma);fprintf (f2, "A soma dos %d numeros eh %d", n, soma);

fclose (f1); fclose (f2);fclose (f1); fclose (f2);

1 12 43 21 67 23 74 23 10 #

infile

x = 2x = 2x = 2x = 2x = 1x = 0

No vídeo

A soma dos 9 numeros eh 274

outfile

Não encontrou final de arquivo

Exercícios 5.4:Exercícios 5.4:

1) Fazer um programa para:1) Fazer um programa para:

   Ler o nome de um arquivo existente no Ler o nome de um arquivo existente no

diretório desse programa (leitura de cadeia de diretório desse programa (leitura de cadeia de caracteres - próximo capítulo)caracteres - próximo capítulo)

Produzir um outro arquivo contendo as linhas Produzir um outro arquivo contendo as linhas do arquivo lido numeradasdo arquivo lido numeradas

  

É interessante ler um arquivo contendo um É interessante ler um arquivo contendo um programa, para que se obtenha a numeração programa, para que se obtenha a numeração de suas linhasde suas linhas

Capítulo V – Comandos de Capítulo V – Comandos de Entrada e SaídaEntrada e Saída

5.1 – Equipamentos de entrada e saída5.1 – Equipamentos de entrada e saída

5.2 – Saída no vídeo-texto5.2 – Saída no vídeo-texto

5.3 – Entrada pelo teclado5.3 – Entrada pelo teclado

5.4 – Entrada e saída por arquivos em 5.4 – Entrada e saída por arquivos em discodisco

5.5 – Controle do vídeo-texto5.5 – Controle do vídeo-texto

5.6 – Vídeo-gráfico5.6 – Vídeo-gráfico

5.5 – Controle do Vídeo-5.5 – Controle do Vídeo-TextoTexto

5.5.1 – A função gotoxy5.5.1 – A função gotoxy

Vista nas aulas de lab, Vista nas aulas de lab, gotoxygotoxy posiciona o posiciona o cursorcursor do vídeo-texto na posição dada por seus do vídeo-texto na posição dada por seus argumentosargumentos

Forma geral: Forma geral:

gotoxy (expressão1, expressão2)gotoxy (expressão1, expressão2)

No da coluna

No da linha

5.5 – Controle do Vídeo-5.5 – Controle do Vídeo-TextoTexto

5.5.1 – A função gotoxy5.5.1 – A função gotoxy

Para ser usada no CodeBlocks, Para ser usada no CodeBlocks, gotoxygotoxy pertence à pertence à biblioteca biblioteca conio2conio2 (arquivos (arquivos <conio2.h> <conio2.h> e e <libconio.a><libconio.a>))

Esses dois arquivos deverão ser copiados Esses dois arquivos deverão ser copiados respectivamente para as pastas respectivamente para as pastas includeinclude e e liblib, de , de CodeBlocks\MinGWCodeBlocks\MinGW

Instruções de como configurar o Instruções de como configurar o CodeBlocksCodeBlocks para para trabalhar com a biblioteca trabalhar com a biblioteca conio2conio2 são apresentadas são apresentadas nas aulas práticasnas aulas práticas

Exemplo: Exemplo: desenho de segmentos de retas comdesenho de segmentos de retas com ‘*’‘*’

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

#include <conio.h>#include <conio.h>

#include <conio2.h>#include <conio2.h>

int main () {int main () {

int a, b, i;int a, b, i;

printf ("Maximize a tela e digite algo!");printf ("Maximize a tela e digite algo!");

getch ();getch ();

clrscr ();clrscr ();

for (a=1, b=1, i=1; i<=10; a+=8, b+=2, i++) {for (a=1, b=1, i=1; i<=10; a+=8, b+=2, i++) {

gotoxy (a, b); printf ("********");gotoxy (a, b); printf ("********");

}}

printf ("\n\nDigite algo para encerrar: ");printf ("\n\nDigite algo para encerrar: ");

getch (); return 0;getch (); return 0;

}}

Na tela

Sempre posiciona o cursor na posição [a, b]

Inicialmente [a, b] = [1, 1]

A cada repetição a+=8 e b+=2

Limpa a tela: conio2.h

Exemplo: Exemplo: programa para o desenho de uma programa para o desenho de uma casacasa

Resultado no vídeo

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

#include <conio.h>#include <conio.h>

#include <conio2.h>#include <conio2.h>

int main () {int main () {

int i,j,x,y,z;int i,j,x,y,z;

printf ("Maximize a tela e digite algo!");printf ("Maximize a tela e digite algo!");

getch ();getch ();

clrscr ();clrscr ();

/*/* Desenho do telhado */Desenho do telhado */

for (x=10,y=12,z=40,i=1; i<=7; x+=3,y-=1,z-=6,i++) {for (x=10,y=12,z=40,i=1; i<=7; x+=3,y-=1,z-=6,i++) {

gotoxy (x,y); printf ("%s%*s","////",z,"\\\\\\\\");gotoxy (x,y); printf ("%s%*s","////",z,"\\\\\\\\");

}}

gotoxy (x,y); printf ("/\\");gotoxy (x,y); printf ("/\\");

/*/* Desenho do piso: coordenada inicial (17, 19); Desenho do piso: coordenada inicial (17, 19); Comprimento 30 */Comprimento 30 */

x=17; y=19; gotoxy (x,y);x=17; y=19; gotoxy (x,y);

printf printf ("##############################");("##############################");

/*/* Desenho das paredes: altura 8; intervalo 28 */Desenho das paredes: altura 8; intervalo 28 */

for (y--,i=1;i<=8;y--,i++) {for (y--,i=1;i<=8;y--,i++) {

gotoxy (x,y); printf ("%c%29c",'#', '#');gotoxy (x,y); printf ("%c%29c",'#', '#');

}}

/*/* Desenho da janela e da porta: janela: 8x3; porta: Desenho da janela e da porta: janela: 8x3; porta: 5x65x6 */*/

for (x=22,y=13,i=1;i<=3;y++,i++){for (x=22,y=13,i=1;i<=3;y++,i++){

gotoxy (x,y);gotoxy (x,y);

printf ("########");printf ("########");

}}

for (x=38,y=13,i=1;i<=6;y++,i++){for (x=38,y=13,i=1;i<=6;y++,i++){

gotoxy (x,y);gotoxy (x,y);

printf ("#####");printf ("#####");

}}

/*/* Desenho da chamine:Desenho da chamine: */*/

x=40; y=4; gotoxy (x,y);x=40; y=4; gotoxy (x,y);

printf ("###");printf ("###");

for (y++,i=1;i<=3;y++,i++){for (y++,i=1;i<=3;y++,i++){

gotoxy (x,y); printf ("%c%2c",'#','#');gotoxy (x,y); printf ("%c%2c",'#','#');

}}

x=42; gotoxy (x,y); printf ("%c",'#');x=42; gotoxy (x,y); printf ("%c",'#');

/*/* Fechamento da telaFechamento da tela */*/

gotoxy (1, 23);gotoxy (1, 23);

printf ("Digite algo para encerrar: ");printf ("Digite algo para encerrar: ");

getch (); return 0;getch (); return 0;

}}

5.5.2 – Outras funções do conio2.h5.5.2 – Outras funções do conio2.h

textbackground:textbackground: estabelece a cor de fundo de estabelece a cor de fundo de um texto escritoum texto escrito

textcolor:textcolor: estabelece a cor do texto estabelece a cor do texto

Exemplo: Exemplo: no programa da casinha:no programa da casinha:

printf ("Maximize a tela e digite algo!");printf ("Maximize a tela e digite algo!");

getch ();getch ();

clrscr (); clrscr (); textcolor(BLUE); textcolor(BLUE); textbackground(LIGHTRED);textbackground(LIGHTRED);

for (i = 1; i <= 40; i++)for (i = 1; i <= 40; i++)

printf (" printf (" "); ");

getch ();getch ();80 espaços

Escreve 40 linhas vazias com fundo LIGHTRED

Resultado:Resultado:

Capítulo V – Comandos de Capítulo V – Comandos de Entrada e SaídaEntrada e Saída

5.1 – Equipamentos de entrada e saída5.1 – Equipamentos de entrada e saída

5.2 – Saída no vídeo-texto5.2 – Saída no vídeo-texto

5.3 – Entrada pelo teclado5.3 – Entrada pelo teclado

5.4 – Entrada e saída por arquivos em 5.4 – Entrada e saída por arquivos em discodisco

5.5 – Controle do vídeo-texto5.5 – Controle do vídeo-texto

5.6 – Vídeo-gráfico5.6 – Vídeo-gráfico

5.6 – Vídeo-Gráfico5.6 – Vídeo-Gráfico

Visto nas aulas de Visto nas aulas de laboratóriolaboratório

No CodeBlocks são usadas rotinas gráficas No CodeBlocks são usadas rotinas gráficas desenvolvidas pelo Prof. Carlos Henrique desenvolvidas pelo Prof. Carlos Henrique Quartucci ForsterQuartucci Forster

Exercícios 5.6:Exercícios 5.6:

1) Seja um tabuleiro de xadrez e as peças 1) Seja um tabuleiro de xadrez e as peças Rainha, Torre, Bispo e Cavalo. Fazer um Rainha, Torre, Bispo e Cavalo. Fazer um programa que leia a inicial de várias dessas programa que leia a inicial de várias dessas peças e as coordenadas de cada uma dentro do peças e as coordenadas de cada uma dentro do tabuleiro e, para cada peça em separado, tabuleiro e, para cada peça em separado, desenhe no vídeo-texto e no vídeo-gráfico o desenhe no vídeo-texto e no vídeo-gráfico o tabuleiro mostrando a posição da peça, as tabuleiro mostrando a posição da peça, as casas atacadas por ela e as casas livres de seu casas atacadas por ela e as casas livres de seu ataque. ataque.

Ver exemplos no próximo slideVer exemplos no próximo slide

R-5-6

2) 2) Fazer umFazer um programa que leia uma frase e a programa que leia uma frase e a escreva no vídeo-gráfico, de modo que cada escreva no vídeo-gráfico, de modo que cada caractere da frase ocupe um retângulo de caractere da frase ocupe um retângulo de 33x21 pixels33x21 pixels

3) Desenhar a Bandeira do Brasil no vídeo-texto 3) Desenhar a Bandeira do Brasil no vídeo-texto e no vídeo-gráficoe no vídeo-gráfico

top related