CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013

Slides:



Advertisements
Apresentações semelhantes
Funções em C Prof. Fabiano Utiyama.
Advertisements

Um programa em C Bibliotecas Variáveis globais
Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas.
Funções em C.
Algoritmos e Programação Linguagens de Programação Teoria Aula 7 (19/05) Universidade Federal do Vale do São.
Introdução à Computação - Jorge Macêdo
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
LINGUAGEM ESTRUTURADA TURBO C
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo III Comandos de Controle.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo IX Estruturas e Subprogramas sem Parâmetros.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo III Declarações e Comandos de Atribuição.
CES-41 COMPILADORES Aulas Práticas
CES-10 INTRODUÇÃO À COMPUTAÇÃO
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VII Variáveis Indexadas Numéricas.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo XI Noções de Estruturas de Dados.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo XI Encadeamento de Estruturas por Ponteiros.
Capítulo IX – Ponteiros 9.1 – Introdução 9.2 – Relação entre ponteiros e variáveis indexadas 9.3 – Alocação dinâmica de memória 9.4 – Variáveis indexadas,
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Estruturas de Dados Homogêneas Multidimensionais – Matrizes
Matrizes e Funções - Continuação
Slides: Prof. João Fabro UTFPR - Curitiba
VETORES, STRINGS E MATRIZES
Estruturas de Decisão Permitir testes para decidir acções alternativas: if if - else switch (?:) Operador Condicional MF.
Linguagem de Programação
O Portal do Estudante de Computação
Vetor de Ponteiros Exemplo de Alocação. Escrever Vetor de Vetores de floats int main() { int i, k, n; float **vetor; // vetor de vetores int *tamanho;
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO I UNIDADE 4.
Programação II Estruturas de Dados Aula 02 - continuação
Seminário 1: Revisão de C
Computação Eletrônica
Introdução à linguagem C
Técnicas de Programação I Prof:. Msc. Arimatéia Junior Fortaleza-2011.
APRENDER A APRENDER deve ser nossa meta. Comandos de Controle de Programa Comandos de Seleção Prof. Me. Jeime Nunes.
Prof.: Edson Holanda Teoria da computação
Capítulo V – Comandos de Entrada e Saída 5.1 – Equipamentos de entrada e saída 5.2 – Saída no vídeo-texto 5.3 – Entrada pelo teclado 5.4 – Entrada e saída.
Uso de parâmetros na linha de comando. Parâmetros da função main:
Introdução à Linguagem C
Declarando e Chamando Funções
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VI Desenhos e Animação.
 São utilizadas para dividir um código maior (mais complexo) em partes menores (mais simples).  Quando uma mesma tarefa é realizada várias vezes em um.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VII Variáveis Indexadas Numéricas.
Estruturas de Dados Aula 6: Cadeias de Caracteres
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo I Comandos Simples e Repetições.
PCI- Estrutura Condicional Profa. Mercedes Gonzales Márquez.
Revisão Luis Antonio Tavares
Programação de Computadores I – Arquivos
Linguagem C - Funções Automação Industrial Informática Básica
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
DSC/CCT/UFCG Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria José Eustáquio Rangel de Queiroz Roberto Medeiros de.
Linguagem de Programação
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C”
Fundamentos de Programação 1 Slides 19 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Binários”.
Fundamentos de Programação 1 Slides 11 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “ Struct, Union, Enum, Typedef ”
Fundamentos de Programação 1 Slides C – Número 4 Prof. SIMÃO Jean Marcelo SIMÃO Estrutura de Dados Homogêneas “vetores de números e de caracteres”
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções”
Prof. Tertuliano Estrutura Condicional em C++
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas – 2017
Fundamentos de Programação 1
CES-11 ESTRUTURAS DE DADOS Aulas Práticas
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas – 2017
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas – 2017
Fundamentos de Programação 1
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas – 2019
Transcrição da apresentação:

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VI Desenhos e Animação

Arquivos fornecidos para a aula: CES10 Prat 6 2013.ppt: Slides da aula lab_6_ces10_2013.doc: proposta do Lab 6 Graficos_DevCpp.pdf: instruções do Prof. Paulo André para utilização do modo gráfico (Aba Artigos da página do prof) Graficos_DevCpp.zip: arquivos com código de rotinas gráficas para incluir no Dev (Aba Códigos da página do prof) Instrucoes_CONIO2.pdf: instruções do Prof. Paulo André para controle do cursor no modo texto do Dev (Aba Artigos da página do prof) conio2.zip: arquivos para a biblioteca conio2 a ser utilizada no Dev (Aba Códigos da página do prof)

Programa 6.1: Posicionamento do cursor no vídeo-texto #include <stdio.h> #include <conio.h> void main () { int col, lin; char c; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); printf ("Posicionar cursor? (s/n): "); c = getche(); while (c == 's' || c == 'S') { printf ("\rDigite a coluna e a linha: "); scanf ("%d%d", &col, &lin); gotoxy (col, lin); getche (); gotoxy (1, 1); printf (" "); printf ("\rPosicionar cursor? (s/n): "); c = getche(); } Copiar, salvar e executar no Borland clrscr (conio.h): apaga a tela \r: reescreve a 1ª linha da tela Posiciona o cursor nas coordenadas desejadas – digitar um caractere Posiciona o cursor na coluna e linha 1 Apaga a 1ª linha \r: reescreve a 1ª linha da tela Para executar no Dev, devem ser copiados os arquivos referentes ao conio2.h

Programa 6.2: Desenho de segmentos de retas com ‘*’ #include <stdio.h> #include <conio.h> void main () { int a, b, i; printf ("Maximize a tela e digite algo!"); getche (); clrscr (); for (a=1, b=1, i=1; i<=10; a+=8, b+=2, i++) { gotoxy (a, b); printf ("********"); } printf ("\n\nDigite algo para encerrar: "); getch (); Copiar, salvar e executar no Borland Sempre posiciona o cursor na posição [a, b] Inicialmente [a, b] = [1, 1] A cada repetição a+=8 e b+=2 Na tela

Programa 6.3: Determinação dos limites do gotoxy #include <stdio.h> #include <conio.h> void main () { int i; printf ("Maximize a tela e digite algo!"); getche (); clrscr (); for (i=1; i<=80; i++) { gotoxy (i, i); printf ("%d", i%10); } printf ("\n\nDigite algo para encerrar: "); getch (); Copiar, salvar e executar no Borland O programa vai tentar escrever o valor de i%10 na diagonal de uma tela 80x80 Ver resultado a seguir

Limites: Coluna 80 Linha 44

Programa 6.4: Passeio do ‘*’ pelo vídeo-texto #include <stdio.h> #include <conio.h> void main () { int i, j, demora = 100000000; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); for (i = 10; i <= 60; i++) { gotoxy (i, 5); printf (" *"); for (j = 1; j <= demora; j++); } for (i = 6; i <= 40; i++) { gotoxy (61, i-1); printf (" "); gotoxy (61, i); printf ("*"); printf ("\n\nDigite algo para encerrar: "); getch (); Copiar, salvar e executar no Borland

Programa 6.4: Passeio do ‘*’ pelo vídeo-texto #include <stdio.h> #include <conio.h> void main () { int i, j, demora = 100000000; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); for (i = 10; i <= 60; i++) { gotoxy (i, 5); printf (" *"); for (j = 1; j <= demora; j++); } for (i = 6; i <= 40; i++) { gotoxy (61, i-1); printf (" "); gotoxy (61, i); printf ("*"); printf ("\n\nDigite algo para encerrar: "); getch (); Para i = 10, na linha 5: Escreve ‘ ’ na coluna 10 e ‘*’ na coluna 11 Para i = 11, na linha 5: Escreve ‘ ’ na coluna 11, apagando ‘*’ Escreve ‘*’ na coluna 12 Dá a impressão de movimento do ‘*’ uma posição p/direita Para i = 60, ‘*’ vai para a coluna 61

Programa 6.4: Passeio do ‘*’ pelo vídeo-texto #include <stdio.h> #include <conio.h> void main () { int i, j, demora = 100000000; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); for (i = 10; i <= 60; i++) { gotoxy (i, 5); printf (" *"); for (j = 1; j <= demora; j++); } for (i = 6; i <= 40; i++) { gotoxy (61, i-1); printf (" "); gotoxy (61, i); printf ("*"); printf ("\n\nDigite algo para encerrar: "); getch (); Faz ‘*’ permanecer numa posição durante um t perceptível O valor 100.000.000 para ‘demora’ é experimental Esse valor pode variar com o computador

Programa 6.4: Passeio do ‘*’ pelo vídeo-texto #include <stdio.h> #include <conio.h> void main () { int i, j, demora = 100000000; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); for (i = 10; i <= 60; i++) { gotoxy (i, 5); printf (" *"); for (j = 1; j <= demora; j++); } for (i = 6; i <= 40; i++) { gotoxy (61, i-1); printf (" "); gotoxy (61, i); printf ("*"); printf ("\n\nDigite algo para encerrar: "); getch (); Para i = 6, na coluna 61: Escreve ‘ ’ na linha 5, apagando ‘*’ Escreve ‘*’ na linha 6 Dá a impressão de movimento do ‘*’ uma posição p/baixo Para i = 40, ‘*’ vai para a linha 40

Programa 6.4: Passeio do ‘*’ pelo vídeo-texto #include <stdio.h> #include <conio.h> void main () { int i, j, demora = 100000000; printf ("Maximize a tela e digite algo: "); getche (); clrscr (); for (i = 10; i <= 60; i++) { gotoxy (i, 5); printf (" *"); for (j = 1; j <= demora; j++); } for (i = 6; i <= 40; i++) { gotoxy (61, i-1); printf (" "); gotoxy (61, i); printf ("*"); printf ("\n\nDigite algo para encerrar: "); getch (); Também faz ‘*’ permanecer numa posição durante um t perceptível

Rotinas gráficas: Rotinas gráficas são necessárias para vários programas profissionais A Linguagem C padrão não define rotinas gráficas Foram criados independentemente vários conjuntos de rotinas gráficas, tais como o Microsoft C/C++ para DOS e o Borland Graphics Interface (BGI) Nestas aulas será utilizada a BGIm, que é uma versão da BGI para o ambiente Dev C++

Instalação da Biblioteca BGI no ambiente Dev C++: Arquivos necessários (compactados em Graficos_DevCpp.zip): graphics.h: copiar em C:\Dev-Cpp\include libbgi.a: copiar em C:\Dev-Cpp\lib Uso de projetos: Para trabalhar em modo gráfico será necessário utilizar o conceito de projeto Projeto é um container que armazena todos os elementos (arquivos) que compõem um programa

Criando um novo projeto no ambiente Dev-C++: Clicar no menu "File" e selecionar "New", "Project... " Escolher "Empty Project" e certificar-se de que a opção "C++ project" está selecionada Escolher um nome para o projeto Pode-se dar qualquer nome válido para um arquivo O nome do projeto será o nome do executável a ser gerado Após escolher o nome, clicar "OK " O Dev-C++ irá perguntar onde salvar o projeto: Escolher um diretório apropriado e salvar o projeto

Criando ou adicionando arquivos ao projeto: Duas formas: Clicar no menu "File" e selecionar "New Source File" ou Clicar no menu "Project" e selecionar "New File" Então é só editar o arquivo com o programa e salvar

Configuração do uso da biblioteca gráfica no projeto: Criado o projeto, é preciso mandar o Dev-C++ utilizar a biblioteca BGIm (que implementa a BGI para o Dev-C++) Isto é feito através da janela "Project Options" A seguir, um conjunto de passos para realizar essa tarefa

Passos para a configuração do uso da BGIm: Clicar no menu "Project" e escolher "Project Options" Clicar na tab "Geral" e selecione "Win32 GUI" Clicar na tab "Parameters" No campo "Linker", digite o seguinte texto: -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 Clicar OK

Programa 6.5: Desenho simples no vídeo-gráfico #include <stdio.h> #include <graphics.h> int main () { int i, j, left, top, bottom, right; initwindow (700, 500, "Primeiro Programa Grafico"); getch (); left = 10; right = 600; top = 10; bottom = 200; for (i = top; i <= bottom; i++) for (j = left; j <= right; j++) putpixel (j, i, MAGENTA); closegraph ( ); } - Criar projeto - Adicionar este arquivo ao projeto - Configurar o projeto para o uso da BGI - Salvar e executar

Programa 6.5: Desenho simples no vídeo-gráfico #include <stdio.h> #include <graphics.h> int main () { int i, j, left, top, bottom, right; initwindow (700, 500, "Primeiro Programa Grafico"); getch (); left = 10; right = 600; top = 10; bottom = 200; for (i = top; i <= bottom; i++) for (j = left; j <= right; j++) putpixel (j, i, MAGENTA); closegraph ( ); } Abre uma janela com título, de 700 colunas e 500 linhas Colore o pixel [j, i] com a cor MAGENTA

Lista de cores disponíveis na BGI:

Programa 6.6: Desenho de várias figuras #include <stdio.h> #include <graphics.h> int main () { int i, j, left, top, bottom, right; /* Abrir janela grafica */ initwindow (700, 500, "Varias Figuras"); /* Colorir uma area quadrada de pixels */ getch (); left = 160; right = 400; top = 80; bottom = 320; for (i = top; i <= bottom; i++) for (j = left; j <= right; j++) putpixel (j, i, RED);

/* Desenhar as bordas de um quadrado */ getch (); setcolor (YELLOW); rectangle (left, top, right, bottom); /* Desenhar as bordas de um circulo */ setcolor (LIGHTBLUE); circle (280, 200, 120); /* Desenhar um segmento de reta */ setcolor (WHITE); line (40, 480, 640, 80);

Mais detalhes sobre rotinas gráficas: /* Preencher um retangulo com textura e cor */ getch (); left = 80; right = 560; top = 400; bottom = 420; setfillstyle(11, LIGHTBLUE); bar (left, top, right, bottom); /* Escrever um texto */ setbkcolor(BROWN); outtextxy(50, 250, "Teste"); /* Fechar janela grafica */ closegraph ( ); } Mais detalhes sobre rotinas gráficas: Manual do Prof. Paulo André Castro Sites da Internet