Notas de Aula de Algoritmos e Programação de Computadores

Tamanho: px
Começar a partir da página:

Download "Notas de Aula de Algoritmos e Programação de Computadores"

Transcrição

1 Notas de Aula de Algoritmos e Programação de Computadores FLÁVIO KEIDI MIYAZAWA com a colaboração de TOMASZ KOWALTOWSKI Instituto de Computação - UNICAMP Versão

2 Estas notas de aula não devem ser usadas como única fonte de estudo. O aluno deve ler outros livros disponíveis na literatura. Nenhuma parte destas notas pode ser reproduzida, qualquer que seja a forma ou o meio, sem a permissão dos autores. Os autores concedem a permissão explícita para a utilização e reprodução deste material no contexto do ensino de disciplinas regulares dos cursos de graduação sob a responsabilidade do Instituto de Computação da UNICAMP. c Copyright 2000 Instituto de Computação UNICAMP Caixa Postal Campinas SP ii

3 14 Figuras e Gráficos Muitas vezes queremos vizualizar objetos que estão sendo representados no modelo computacional, como figuras, curvas, retas, polígonos, etc. Embora muitos objetos possam ter características tridimensionais, na maioria das vezes precisamos traduzi-los de maneira que possam ser visualizados de maneira bidimensional, uma vez que o vídeo é um dispositivo de apresentação bidimensional. Além disso, um vídeo de computador apresenta os objetos como uma matriz de pontos forçando a apresentar os objetos de maneira discretizada. Assim, vamos considerar que o menor elemento usado para apresentar um gráfico/figura é um ponto (pixel). Deste modo, podemos considerar o desenho de uma reta no vídeo como sendo um conjunto de pontos, onde cada ponto da matriz tem coordenadas específicas nos dois eixos da matriz. Naturalmente, os objetos que iremos apresentar não precisam necessariamente estar definidos através de pontos, podendo ter uma representação interna contínua, como é o caso de funções de retas e curvas. Embora, no momento de sua apresentação na tela, esta deva ser discretizada para pontos, uma vez que o vídeo é uma matriz de pontos. Duas maneiras comuns de representação de uma tela gráfica com matriz de pontos por coordenadas são apresentadas nas duas figuras seguintes. Pixel 14 (20,14) (0,0) 20 (0,0) (a) Para simplificar nossos programas, iremos usar a representação (a). 20 No processo de apresentação de objetos gráficos no vídeo, os pontos (representados por bits) são lidos de uma memória (memória de vídeo) e são apresentados no vídeo, em torno de 30 vezes por segundo. Uma figura pode ser apresentada em um dispositivo gráfico usando cores, em geral usando uma quantidade limitada de memória para armazenar cada ponto de uma figura (e conseqüêntemente usando um número limitado de cores). Esta memória dependerá da quantidade de cores possíveis que cada ponto pode assumir. Se consideramos uma figura em preto e branco, cada ponto pode ser representado por apenas um bit. Para representar 256 cores (ou tonalidades diferentes), precisaremos de um byte para representar cada bit. Neste caso, uma figura usando pontos, onde cada ponto assume 256 cores, usa uma memória de vídeo de pelo menos 1 Megabyte. Uma maneira muito comum de se representar pontos coloridos é usando o formato RGB (Red-Green-Blue), através de três valores que indicam a intensidade das cores Vermelha, Verde e Azul (lembrando que uma determinada cor pode ser obtida misturando quantidades específicas destas três cores). 14 (b) (20,14) 14.1 Usando o formato PPM Portable PixMap Para podermos trabalhar com gráficos de maneira independente de computador e sistema operacional, vamos usar um formato que pode ser visualizado em diversos ambientes computacionais. Vamos usar o formato PPM (Portable PixMap Format). Este formato representa uma matriz de pontos em um arquivo, usando o formato RGB, onde cada ponto colorido é apresentado por três bytes seguidos, representando a intensidade das cores vermelha, verde e azul. Cada byte apresenta um valor entre 0 e 255. Portanto, cada pixel pode ser uma de cores (naturalmente, sua visualização dependerá da qualidade do vídeo usado). Uma vez que temos esta matriz de pontos, podemos formar uma figura mudando as cores dos elementos desta matriz, ponto a ponto. Existem diversos programas para visualização de figuras armazenadas em arquivos de diversos formatos gráficos, alguns destes livres ou a preços reduzidos (Freeware e Shareware) que podem visualizar figuras no formato PPM. Para o ambiente Linux, podemos usar o programa GQview, que pode ser obtido na página No ambiente Unix/X Windows, podemos usar o program xv, disponível para a maioria das plataformas. Para o ambiente Windows podemos usar o programa Irfan View32, disponível livremente na rede Por simplicidade, usaremos um tipo restrito para as figuras do formato PPM. Neste formato usamos um cabeçalho apresentando 4 valores descritos em formato texto (P6 Largura Altura 255), separados por um espaço em branco ou 136

4 em linhas diferentes. P6 são os caracteres ASCII P e 6, e devem ser os primeiros dois bytes do arquivo. Em seguida devem vir a largura e altura da figura, Largura e Algura, descritos em números ASCII. Por fim, devem vir o três caracteres ASCII do número 255, indicando que a maior componente de uma cor (intensidade de Vermelho, Verde ou Azul) é 255. Caracteres neste cabeçalho que estejam em uma linha após o símbolo # não são considerados (comentários). Logo em seguida, como último byte deste cabeçalho, temos o byte de valor 10 (NewLine) e em seguida devem vir a seqüência de bytes que representam os pixels da figura. A cada três bytes (usando o sistema RGB) representamos um pixel (o primeiro byte para a intensidade de vermelho, o segundo para a intensidade de verde e o terceiro para a intensidade de azul), ao todo temos Largura Altura pixels. Um exemplo de um cabeçalho para uma figura com 200 pixels de largura e 300 pixels de altura é apresentado no quadro seguinte: P A seqüência de pixels gravados no arquivo PPM segue a ordem apresentada pelas setas na seguinte figura: A (L,A) Último Pixel Primeiro Pixel (0,0) L Para trabalhar com a matriz de pixels, vamos usar um tipo chamado TipoTela, onde cada pixel é do tipo TipoCor, em RGB, declarados no seguinte quadro. const MAXPONTOS 200; type TipoCor record red,green,blue : Byte; TipoTela array[0..maxpontos 1,0..MAXPONTOS 1] of TipoCor; Com estas declarações podemos gerar uma figura, usando uma matriz de MAXPONTOS MAXPONTOS pixels. Além disso, podemos definir algumas cores para facilitar a atribuição de cores. Para definir a cor vermelha, podemos atribuir, em RGB, a intensidade máxima para vermelho (Red) e intensidade zero para as outras duas cores (Green e Blue). Podemos fazer o mesmo processo para definir as cores verde e azul. A cor branca é definida quanto temos a máxima intensidade (valor 255) para as componentes vermelha, verde e azul, e a cor preta é definida pela ausência de cores (valor zero). O quadro da página 138 mostra a definição destas cores e rotinas para iniciar a tela com cor branca e gravar a tela em um arquivo no formato PPM. Obs.: Além do formato PPM, existem diversos outros formatos gráficos, sendo que alguns incorporam métodos de compressão de dados, como é o caso dos formatos GIF e JPG. 137

5 const MAXPONTOS 200; type TipoCor record Red,Green,Blue : Byte; TipoTela array[0..maxpontos 1,0..MAXPONTOS 1] of TipoCor; TipoNomeArq string[100]; TipoArquivoBinario file of byte; var Branco,Vermelho,Verde,Azul,Preto : TipoCor; procedure InicializaAlgumasCores; Cores: Branco, Preto, Vermelho, Verde, Azul Definicao das cores usadas no formato RGB (Red Green Blue) Branco.Red: 255; Branco.Green: 255; Branco.Blue: 255; Preto.Red: 0; Preto.Green: 0; Preto.Blue: 0; Vermelho.Red: 255; Vermelho.Green: 0; Vermelho.Blue: 0; Verde.Red: 0; Verde.Green: 255; Verde.Blue: 0; Azul.Red: 0; Azul.Green: 0; Azul.Blue: 255; procedure InicializaTela(var tela: tipotela); Coloca todos os pixels como Branco var i,j : integer; Obs.: O ponto (0,0) está no canto inferior esquerdo for i: 0 to MAXPONTOS 1 do for j: 0 to MAXPONTOS 1 do tela[i,j] : Branco; inicializatela procedure DesenhaPonto(var tela : tipotela; x,y:integer; Cor:TipoCor); tela[x,y] : Cor; Atribui o pixel (x,y) com Cor procedure EscreveCabecalhoPPM(var arq : TipoArquivoBinario;largura,altura:integer); var i : integer; str1,str2,cabecalho : string[100]; b:byte; str(largura,str1); str(altura,str2); Pegar a largura e altura como strings cabecalho : P6 str1 str2 255 ); for i: 1 to length(cabecalho) do b: ord(cabecalho[i]); write(arq,b); b: 10; write(arq,b); Caracter para Pular linha procedure GravaTela(var t:tipotela; nomearq:tiponomearq); Grava a tela em arquivo var Arq: TipoArquivoBinario; lin,col : integer; assign(arq,nomearq); rewrite(arq); EscreveCabecalhoPPM(Arq,MAXPONTOS,MAXPONTOS); for col: MAXPONTOS 1 downto 0 do for lin: 0 to MAXPONTOS 1 do write(arq,t[lin,col].red); Grava um pixel definido em RGB write(arq,t[lin,col].green); write(arq,t[lin,col].blue); close(arq); GravaTela 138

6 14.2 Retas e Círculos Uma vez que sabemos como imprimir um ponto em uma figura e gravá-la em um arquivo no formato PPM, vamos construir duas primitivas gráficas para construir desenhos mais complexos, as rotinas para desenhar um segmento de reta e um círculo. Para estas duas operações, vamos construir rotinas paramétricas, que definem os pontos do objeto através de um parâmetro. Podemos definir os pontos de um segmento de reta, ligando dois pontos! "$# e! #, usando um parâmetro % no intervalo & " (' como ) *%+#$!,%!#!#.-/%102& " ('3, onde *%+# (#:9%$,%!#;5":< = ">#:9?%;@ Note que quando %AB obtemos o ponto e quando %AC obtemos o ponto. Para desenhar o segmento de reta, podemos plotar alguns pontos de, cuja quantidade dependerá da dimensão da matriz de pontos, escolhendo valores de % distribuídos no intervalo & " ('. Para desenhar um círculo D, com centro FE(G"+E(H# e raio I, também vamos usar um parâmetro % que refletirá um ângulo no intervalo & "> J6#. Primeiramente, vamos verificar a seguinte representação para um círculo com centro em F "+ K# e raio. y sen(t) P t (0,0) cos(t) x Note que as coordenadas do ponto pertencente ao círculo, definido pelo ângulo % é o ponto LMFNPO Q %!#$+Q>RTS%!#!#. Para definir um círculo de raio maior, basta multiplicar as coordenadas dos pontos pelo valor de I, e para que o círculo seja definido com centro FE(G"+E(H#, adicionamos os valores de E$G e E(H nas coordenadas correspondentes. Desta forma, obtemos a seguinte representação paramétrica para os pontos do círculo: DU *%+#$!,%!#!#- %102& "> J6#> onde V%!#4<E$GWXIY9NPO Q %!#$,%!#;ZE(HXIY9Q+RTS%+#;@ Agora podemos definir uma figura ou objeto gráfico, mais elaborado, como um conjunto de objetos primitivos (retas e círculos). Vamos definir este objeto mais elaborado como o tipo TipoFigura da seguinte maneira: const MAXOBJETOS 200; Quantidade máxima de objetos que uma figura pode ter type TipoCor record red,green,blue : Byte; TipoForma (FormaCirculo,FormaReta); TipoObjeto record Cor : TipoCor; case Forma : TipoForma of FormaCirculo : (centrox,centroy:integer; Raio:Real); FormaReta : (p1x,p1y,p2x,p2y:integer); TipoFigura record nobjetos : 0..MAXOBJETOS; quantidade de objetos, armazenados em vetor objeto : array[1..maxobjetos] of TipoObjeto; A seguir, apresentamos um programa, contendo os procedimentos para desenhar um segmento de reta e um círculo, para gravar uma figura de um desenho de um rosto construído com círculos e retas e gravado em um arquivo no formato PPM. 139

7 program ProgFigura; const MAXPONTOS 200; MAXOBJETOS 200; type TipoCor record red,green,blue : Byte; TipoTela array[0..maxpontos 1,0..MAXPONTOS 1] of TipoCor; TipoForma (FormaCirculo,FormaReta); TipoObjeto record Cor : TipoCor; case Forma : TipoForma of FormaCirculo : (centrox,centroy:integer;raio:real); FormaReta : (p1x,p1y,p2x,p2y:integer); TipoFigura record nobjetos : 0..MAXOBJETOS; objeto : array[1..maxobjetos] of TipoObjeto; TipoNomeArq string[100]; TipoArquivoBinario file of byte; var Branco,Vermelho,Verde,Azul,Preto : TipoCor; Incluir as seguintes rotinas procedure InicializaTela(var tela : tipotela); procedure DesenhaPonto(var tela : tipotela; x,y:integer; cor:tipocor); procedure GravaTela(var t : TipoTela; nomearq: tiponomearq); procedure DesenhaReta(var tela : tipotela; x1,y1,x2,y2:integer; cor:tipocor); var t,delta,maxit,x,y : real; representacao parametrica delta : 1/MAXPONTOS; x: x1; y: y1; t: 0; while t[a 1 do 0 [A t [\ 1 x: x1 (x2 x1)] t; y: y1 (y2 y1)] t; DesenhaPonto(tela,round(x),round(y),cor); t: t delta; procedure DesenhaCirculo(var tela : tipotela; cx,cy:integer;raio:real; cor:tipocor); var t,delta,maxit,x,y,doispi : real; representacao parametrica DoisPi : PI ] 2; delta : t: 0; 1/MAXPONTOS; while t[a DoisPi do 0 [A t [\ DoisPi x: cx raio ] cos(t); Y: cy raio ] sin(t); DesenhaPonto(tela,round(x),round(y),cor); t: t delta; Usando Coordenadas Polares 140

8 procedure DesenhaObjeto(var tela : TipoTela; obj : TipoObjeto); case Obj.Forma of FormaCirculo : DesenhaCirculo(tela, obj.centrox, obj.centroy, obj.raio, obj.cor); FormaReta : DesenhaReta(tela, obj.p1x, obj.p1y, obj.p2x, obj.p2y, obj.cor); case procedure DesenhaFigura(var t : TipoTela; var Fig:TipoFigura); var i:integer; for i: 1 to Fig.nobjetos do DesenhaObjeto(t,Fig.objeto[i]); procedure EscreveString(var arq : TipoArquivoBinario;str:string); var i : integer; for i: 1 to length(str) do write(arq,ord(str[i])); var t : tipotela; face : TipoFigura; Definicao de algumas cores usando o formato RGB (Red Green Blue) Branco.Red: 255; Branco.Green: 255; Branco.Blue: 255; Preto.Red: 0; Preto.Green: 0; Preto.Blue: 0; Vermelho.Red: 255; Vermelho.Green: 0; Vermelho.Blue: 0; Verde.Red: 0; Verde.Green: 255; Verde.Blue: 0; Azul.Red: 0; Azul.Green: 0; Azul.Blue: 255; inicializatela(t); cabeca face.objeto[1].forma : FormaCirculo; face.objeto[1].cor : Preto; face.objeto[1].centrox : 100; face.objeto[1].centroy : 100; face.objeto[1].raio : 50; olho esq face.objeto[2].forma : FormaCirculo; face.objeto[2].cor : Azul; face.objeto[2].centrox : 80; face.objeto[2].centroy : 120; face.objeto[2].raio : 6; olho dir face.objeto[3].forma : FormaCirculo; face.objeto[3].cor : Verde; face.objeto[3].centrox : 120; face.objeto[3].centroy : 120; face.objeto[3].raio : 10; nariz face.objeto[4].forma : FormaReta; face.objeto[4].cor : Preto; face.objeto[4].p1x : 100; face.objeto[4].p1y : 110; face.objeto[4].p2x : 100; face.objeto[4].p2y : 90; boca face.objeto[5].forma : FormaReta; face.objeto[5].cor : Vermelho; face.objeto[5].p1x : 80; face.objeto[5].p1y : 80; face.objeto[5].p2x : 120; face.objeto[5].p2y : 80; face.nobjetos : 5; face foi definido com 5 objetos graficos DesenhaFigura(t,face); GravaTela(t, saida.ppm ); end. 141

9 14.3 Exercícios 1. O formato PGM (Portable Grayscale pixmap) é muito parecido com o formato PPM. Neste formato podemos representar figuras monocromáticas, com intensidade nos pixels. I.e., todos os pixels tem apenas uma cor, mas podem ter intensidade que pode ir de 0 a 255. A seguir, listamos as diferenças/semelhanças nos formatos destes dois arquivos: (a) O cabeçalho é descrito da mesma maneira que o cabeçalho de um arquivo PPM, mas em vez de P6, você deve colocar P5. (b) A seqüência de pixels segue a mesma ordem que no formato PPM. (c) Cada pixel usa apenas 1 byte (em vez de 3). O valor deste byte indica a intensidade do pixel. O valor 255 para o branco e 0 para preto. Os valores entre 0 e 255 indicarão uma intensidade intermediária. Faça um programa que desenha a figura apresentada na página 141, mas em formato PGM. 2. Faça outras primitivas gráficas, além do segmento de reta e o círculo: Retângulo, Retângulo Preenchido (todo preenchido com uma cor), Círculo Preenchido, Poligono fechado de ^ pontos. 3. Faça um programa contendo uma rotina que plota uma função _;`# em um arquivo de formato PPM, para valores de em um intervalo &! '. A rotina deve ter o seguinte cabeçalho: procedure PlotaFuncao(f: TipoFuncaoReal; 6P!! "! :real; NomeArquivo:TipoString); onde TipoFuncaoReal foi definido como: type TipoFuncao = function(x:real):real; Com isso, iremos passar a função a plotar como parâmetro. Para plotar os pontos :>_;`#!#, discretize os valores de no intervalo &! ', imprima os pontos _;`# que caem no intervalo &! '. Além disso, imprima as retas dos eixos az ebz, caso estas estejam nos intervalos de impressão. Faça uma imagem de tamanho c)dd pontos (com digamos cfe / e Dgfe / ). Naturalmente você terá que fazer uma reparametrização, de maneira que o ponto F "+ K# na matriz de pontos seja equivalente a posição! "$# e o ponto Fc.$Dh# na matriz de pontos seja equivalente a posição! #. 4. Faça uma rotina que tenha como parâmetros, um vetor de valores reais positivos com ^ elementos. Faça um programa que gere gráficos de barras, histograma e tipo torta, de acordo com a escolha do usuário. 5. A figura de uma letra pode ser armazenada em uma matriz de tamanho i\bi. Gere matrizes para algumas letras, atribuindo os valores dos pontos através de um programa (vc pode usar as rotinas de reta e círculo para isso). Uma vez que você gerou estas letras, faça uma rotina que tem como parâmetro uma posição (bidimensional) e uma letra. A rotina deve imprimir a matriz que forma a letra na tela de pontos. Isto permitirá que possamos escrever na figura. 6. Faça uma rotina que tem como parâmetro os nomes de dois arquivos e um valor real positivo, j. A rotina lê o arquivo do primeiro nome, que é uma figura no formato PPM e gera outro arquivo que é a mesma figura, mas com tamanho reparametrizado de um fator j. 142

Notas de Aula de Algoritmos e Programação de Computadores

Notas de Aula de Algoritmos e Programação de Computadores Notas de Aula de Algoritmos e Programação de Computadores FLÁVIO KEIDI MIYAZAWA com a colaboração de TOMASZ KOWALTOWSKI Instituto de Computação - UNICAMP Versão 2000.1 Estas notas de aula não devem ser

Leia mais

2 Representação de Imagens em Arquivos Texto

2 Representação de Imagens em Arquivos Texto MAP-2121 - Segundo Exercício Programa - 2013 Instruções gerais - Os exercícios computacionais pedidos na disciplina Cálculo Numérico têm por objetivo fundamental familiarizar o aluno com problemas práticos

Leia mais

Motivação Por que estudar?

Motivação Por que estudar? Aula 04 Imagens Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Curso de Ciência da Computação Motivação Por que estudar? Imagens digitais

Leia mais

Imagem e Gráficos. vetorial ou raster?

Imagem e Gráficos. vetorial ou raster? http://computacaografica.ic.uff.br/conteudocap1.html Imagem e Gráficos vetorial ou raster? UFF Computação Visual tem pelo menos 3 grades divisões: CG ou SI, AI e PI Diferença entre as áreas relacionadas

Leia mais

Imagem ou Desenhos e Gráficos vetorial ou raster?

Imagem ou Desenhos e Gráficos vetorial ou raster? http://computacaografica.ic.uff.br/conteudocap1.html Imagem ou Desenhos e Gráficos vetorial ou raster? Computação Visual A CG (ou CV) tem pelo menos 3 grades divisões: SI (ou CG), AI e PI Inicialmente

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Processamento Digital de Imagens Aula 02 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... Unidade I - Introdução ao

Leia mais

Aula 07. Representação da Informação. Prof. Dr. Dilermando Piva Jr.

Aula 07. Representação da Informação. Prof. Dr. Dilermando Piva Jr. 07 Aula 07 Representação da Informação Prof. Dr. Dilermando Piva Jr. Site Disciplina: http://fundti.blogspot.com.br/ Informação - é gerada a partir da definição e organização das relações entre os dados.

Leia mais

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string Pascal -Cabeçalho do programa Áreas do programa -Área de declarações -Corpo do programa - label - const - type - var - procedure - function - integer - real - byte - boolean - char - string Program

Leia mais

Imagem digital. Elicardo Gonçalves

Imagem digital. Elicardo Gonçalves Imagem digital Elicardo Gonçalves As imagens são armazenadas no computador no formato de matrizes numéricas. Cada elemento da matriz representa um pixel (picture cell), que é a menor divisão desta imagem.

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Estruturas de Repetição

Estruturas de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números

Leia mais

Informática I. Aula Aula 22-12/11/2007 1

Informática I. Aula Aula 22-12/11/2007 1 Informática I Aula 22 http://www.ic.uff.br/~bianca/informatica1/ Aula 22-12/11/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript

Leia mais

MAP Cálculo Numérico com Aplicações em Física Instituto de Física 1 o Semestre de 2008 Exercício-programa 1

MAP Cálculo Numérico com Aplicações em Física Instituto de Física 1 o Semestre de 2008 Exercício-programa 1 MAP0214 - Cálculo Numérico com Aplicações em Física Instituto de Física 1 o Semestre de 2008 Exercício-programa 1 Bacia de atração do Método de Newton em duas dimensões (data de entrega: 12/05/2008 no

Leia mais

2 Segmentação de imagens e Componentes conexas

2 Segmentação de imagens e Componentes conexas Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Informática (DAINF) Algoritmos II Professor: Alex Kutzke (alexk@dainf.ct.utfpr.edu.br) Especificação do Primeiro Trabalho Prático

Leia mais

Introdução ao Processamento de Imagens Digitais Aula 01

Introdução ao Processamento de Imagens Digitais Aula 01 Introdução ao Processamento de Imagens Digitais Aula 01 Douglas Farias Cordeiro Universidade Federal de Goiás 06 de julho de 2015 Mini-currículo Professor do curso Gestão da Informação Formação: Graduação

Leia mais

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Strings. Para começar... Strings. Exemplo...

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Strings. Para começar... Strings. Exemplo... Algoritmos e Lógica de Programação 80 horas // 4 h/semana Strings ou cadeias de Caracteres Aula 14 Prof. Piva Para começar... Strings são cadeias de caracteres que armazenam dados textuais e, portanto,

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

MATRIZES - PARTE Definição e Manipulação de Matrizes AULA 21

MATRIZES - PARTE Definição e Manipulação de Matrizes AULA 21 AULA 21 MATRIZES - PARTE 1 21.1 Definição e Manipulação de Matrizes Sabemos como definir variáveis de um novo tipo de dados, denominado vetor, que representam seqüências de valores de um mesmo tipo. Por

Leia mais

Os computadores processam dados digitais ou discretos. Os dados são informação representada num sistema digital de símbolos.

Os computadores processam dados digitais ou discretos. Os dados são informação representada num sistema digital de símbolos. Os computadores processam dados digitais ou discretos. Os dados são informação representada num sistema digital de símbolos. Todas as formas de informação devem ser convertidas para a forma digital de

Leia mais

Faculdade de Computação

Faculdade de Computação Faculdade de Computação Programação Procedimental 13 Laboratório de Programação - Algoritmos Prof. Cláudio C. Rodrigues Prof. Fabíola Gonçalves I. Introdução a Arquivos A motivação para utilizar arquivos

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Processamento Digital de Imagens Aula 03 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... Unidade II - Básico sobre

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários.

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários. CURSO BÁSICO DE PROGRAMAÇÃO AULA 17 Manipulação de arquivos binários. Revisão Abrindo arquivos de texto em C FILE *arquivo = fopen(, ); FILE: Tipo do objeto de arquivo. fopen: Função

Leia mais

Notas de Aula de Algoritmos e Programação de Computadores

Notas de Aula de Algoritmos e Programação de Computadores Notas de Aula de Algoritmos e Programação de Computadores FLÁVIO KEIDI MIYAZAWA com a colaboração de TOMASZ KOWALTOWSKI Instituto de Computação - UNICAMP Versão 2000.1 Estas notas de aula não devem ser

Leia mais

MC-102 Aula 01. Instituto de Computação Unicamp

MC-102 Aula 01. Instituto de Computação Unicamp MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2016 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos

Leia mais

Unidade 4: Introdução à Lógica de Programação - Parte II

Unidade 4: Introdução à Lógica de Programação - Parte II Lógica de Programação para Engenharia 1 Unidade 4: Introdução à Lógica de Programação - Parte II Português Estruturado Prof. Daniel Caetano Objetivo: Explicitar os elementos básicos envolvidos na programação

Leia mais

1 O filtro da mediana

1 O filtro da mediana CCM0118 Computação I Departamento de Ciência da Computação IME-USP Curso de Ciências Moleculares Turma 22 Segundo Semestre de 2012 Quarto Exercício-Programa Prazo de entrega: até 4 de dezembro de 2012.

Leia mais

MC-102 Aula 24 Arquivos em C e Parâmetros do Programa

MC-102 Aula 24 Arquivos em C e Parâmetros do Programa MC-102 Aula 24 Arquivos em C e Parâmetros do Programa Instituto de Computação Unicamp 3 de Novembro de 2016 Roteiro 1 Arquivos Introdução a Arquivos em C Nomes e Extensões Tipos de Arquivos Caminhos Absolutos

Leia mais

Tratamento de Caracteres

Tratamento de Caracteres Tratamento de Caracteres Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan A tabela ASCII Se os computadores manipulam apenas números, como eles podem armazenar os caracteres de um nome

Leia mais

Unidade 4: Introdução à Lógica de Programação - Parte II Português Estruturado - Versão Estácio Prof. Daniel Caetano

Unidade 4: Introdução à Lógica de Programação - Parte II Português Estruturado - Versão Estácio Prof. Daniel Caetano Lógica de Programação para Engenharia 1 Unidade 4: Introdução à Lógica de Programação - Parte II Português Estruturado - Versão Estácio Prof. Daniel Caetano Objetivo: Explicitar os elementos básicos envolvidos

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 5: Registros O objetivo desta aula é apresentar os tipos de dados definidos pelo programador, bem como exibir usos comuns desses tipos de

Leia mais

Arquivos. Arquivos correspondem a unidades de armazenamento, tipicamente gravados em unidades de memória secundária.

Arquivos. Arquivos correspondem a unidades de armazenamento, tipicamente gravados em unidades de memória secundária. Arquivos Arquivos correspondem a unidades de armazenamento, tipicamente gravados em unidades de memória secundária. Sistemas operacionais, como Linux ou Windows, permitem que arquivos sejam criados e recuperados

Leia mais

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Introdução a Linguagem C GE4 Bio GE4Bio Grupo de Estudos

Leia mais

Programação de Computadores I Estrutura de um Programa Procedimentos de Entrada e Saída PROFESSORA CINTIA CAETANO

Programação de Computadores I Estrutura de um Programa Procedimentos de Entrada e Saída PROFESSORA CINTIA CAETANO Programação de Computadores I Estrutura de um Programa Procedimentos de Entrada e Saída PROFESSORA CINTIA CAETANO Estrutura de um programa Todo programa é subdividido em três áreas distintas: cabeçalho

Leia mais

Aula 3:Introdução à Linguagem C

Aula 3:Introdução à Linguagem C MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SANTA CATARINA CAMPUS JOINVILLE DEPARTAMENTO DO DESENVOLVIMENTO DO ENSINO

Leia mais

3ª Lista de Exercícios de Programação I

3ª Lista de Exercícios de Programação I 3ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C, apoiadas por representação em algoritmo para planejamento. 1. Desenvolva um programa que leia dois valores a

Leia mais

Aula de Arquivos. Jesimar da Silva Arantes. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP

Aula de Arquivos. Jesimar da Silva Arantes. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP Aula de Arquivos Jesimar da Silva Arantes Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP Estagiário PAE: Jesimar da Silva Arantes Professor: Claudio Fabiano

Leia mais

Aula /2 Sistemas de coordenadas Window x Viewport

Aula /2 Sistemas de coordenadas Window x Viewport http://computacaografica.ic.uff.br/conteudocap2.html Aula 8 2018/2 Sistemas de coordenadas Window x Viewport Sistemas de Coordenadas O Sistema de Coordenadas nos dá uma referência sobre o tamanho e a posição

Leia mais

António Costa. Paulo Roma Cavalcanti

António Costa. Paulo Roma Cavalcanti Introdução à Computação Gráfica Preâmbulo Adaptação: Autoria: João Paulo Pereira António Costa Claudio Esperança Paulo Roma Cavalcanti Computação Gráfica Modelos Matemáticos Análise (reconhecimento de

Leia mais

Sistemas Numéricos - Aritmética. Conversão de Bases. Prof. Celso Candido ADS / REDES / ENGENHARIA

Sistemas Numéricos - Aritmética. Conversão de Bases. Prof. Celso Candido ADS / REDES / ENGENHARIA Conversão de Bases 1 NOTAÇÃO POSICIONAL - BASE DECIMAL Desde os primórdios da civilização o homem adota formas e métodos específicos para representar números, para contar objetos e efetuar operações aritméticas.

Leia mais

Métodos Computacionais em Física

Métodos Computacionais em Física Métodos Computacionais em Física Tatiana G. Rappoport tgrappoport@if.ufrj.br 214-2 Variáveis indexadas (arrays) Diversos problemas requerem o uso de vetores ou matrizes: Um conjunto de dados do mesmo tipo

Leia mais

Prática de Programação. Prof. Tiago A. E. Ferreira Aula 9 Estruturas, Uniões, Enumerações e Tipos Definidos pelo Usuário

Prática de Programação. Prof. Tiago A. E. Ferreira Aula 9 Estruturas, Uniões, Enumerações e Tipos Definidos pelo Usuário Prática de Programação Prof. Tiago A. E. Ferreira Aula 9 Estruturas, Uniões, Enumerações e Tipos Definidos pelo Usuário Introdução A linguagem C/C++ permite criar tipos de dados definidos pelo usuário

Leia mais

ALGORITMOS EXERCÍCIOS LISTA 01: ESTRUTURAS SEQUENCIAIS Profª Lucília Ribeiro. Como calcular?

ALGORITMOS EXERCÍCIOS LISTA 01: ESTRUTURAS SEQUENCIAIS Profª Lucília Ribeiro. Como calcular? ALGORITMOS EXERCÍCIOS LISTA 01: ESTRUTURAS SEQUENCIAIS Profª Lucília Ribeiro 01 Escreva um programa que receba a coordenada superior esquerda de um retângulo, bem como a largura e altura do mesmo e em

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Cilindros projetantes de uma curva

Cilindros projetantes de uma curva Cilindros projetantes de uma curva Dada uma curva C no espaço é possível obter tres cilindros retos cujas interseções fornecem a curva C. Estes cilindros são obtidos projetando-se a curva em cada um dos

Leia mais

Representando e Processando Informção

Representando e Processando Informção Representando e Processando Informção Introdução a ECI Aula 6 Daniel R. Figueiredo LAND PESC/COPPE/UFRJ Informação O que é informação? Pergunta bem difícil de responder Definição pragmática: informação

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 7 Vetores Profa. Marina Gomes marinagomes@unipampa.edu.br 19/05/2017 Engenharia de Computação - Unipampa 1 Motivação Problema: Leia as notas de uma turma de cinco estudantes

Leia mais

Roteiro para Aula 1 de laboratório. 1) Mostrar estrutura básica de um código em Fortran. algoritmo. program nome_da_codificacao.

Roteiro para Aula 1 de laboratório. 1) Mostrar estrutura básica de um código em Fortran. algoritmo. program nome_da_codificacao. Universidade do Estado do Rio de Janeiro Instituto de Física Armando Dias Tavares Departamento de Física Aplicada e Termodinâmica Laboratório de Física Computacional/IF Roteiro para Aula 1 de laboratório

Leia mais

LINGUAGEM C: ARRAYS DE CARACTERES: STRINGS

LINGUAGEM C: ARRAYS DE CARACTERES: STRINGS LINGUAGEM C: ARRAYS DE CARACTERES: STRINGS Prof. André Backes DEFINIÇÃO String Sequência de caracteres adjacentes na memória. Essa sequência de caracteres, que pode ser uma palavra ou frase Em outras palavras,

Leia mais

Working 03 : Conceitos Básicos I

Working 03 : Conceitos Básicos I Working 03 : Conceitos Básicos I Objetivos: Dominar os conceitos básicos da linguagem de programação C; Aprender a utilizar o compilador, identificando os erros de sintaxe do código fonte; Prazo de Envio:

Leia mais

Organização de programas em Python. Vanessa Braganholo

Organização de programas em Python. Vanessa Braganholo Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem

Leia mais

Padrões e Tipos de Dados de Mídia. Imagem

Padrões e Tipos de Dados de Mídia. Imagem Padrões e Tipos de Dados de Mídia. Imagem CONFERENCIA 3 Ing. Yamila Díaz Suárez Revisão de tarefa Realizar um resumo sobre a gestão eletrónica de documentos. Pesquisar quais ferramentas existem. Contéudo

Leia mais

Aula Expositiva 2. DCC 001 Programação de Computadores. 2º Semestre de 2011 Prof. Osvaldo Carvalho UFMG DCC

Aula Expositiva 2. DCC 001 Programação de Computadores. 2º Semestre de 2011 Prof. Osvaldo Carvalho UFMG DCC UFMG DCC001 2011-2 1 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas lógicas 2.2.5 Síntese de Circuitos Combinatórios

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para

Leia mais

EXERCÍCIO DE SONDAGEM SEMESTRE DATAS: 21/06/2016 (TURMAS 01 E 02) Matrícula Nome Nota

EXERCÍCIO DE SONDAGEM SEMESTRE DATAS: 21/06/2016 (TURMAS 01 E 02) Matrícula Nome Nota Professor de INTRODUÇÃO À PROGRAMAÇÃO Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.:

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

TCC 00308: Programação de Computadores I Organização de programas em Python

TCC 00308: Programação de Computadores I Organização de programas em Python TCC 00308: Programação de Computadores I 2017.1 Organização de programas em Python Vamos programar em Python! Como um programa é organizado? Quais são os tipos de dados disponíveis? Como variáveis podem

Leia mais

Matrizes (Vetores Bidimensionais)

Matrizes (Vetores Bidimensionais) (Vetores Bidimensionais) Objetivos Conceituação de Vetores Bidimensionais Manipulação de Vetores Bidimensionais Entender a diferença entre uso dos diferentes vetores Entender como manipular entrada, saída

Leia mais

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ACTIONSCRIPT 3 Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar os conceitos básicos da linguagem ActionScript 3.0 Capacitar o aluno para criar programas

Leia mais

3. Programação Gráfica

3. Programação Gráfica 3. Programação Gráfica De uma forma geral, um programa de computador deve conter uma entrada de dados, algoritmos matemáticos para tratamento de dados e saídas para visualizar os resultados. A saída pode

Leia mais

Pipeline de Visualização 3D

Pipeline de Visualização 3D Pipeline de Visualização 3D André Tavares da Silva andre.silva@udesc.br Capítulo 5 de Foley Capítulo 2 de Azevedo e Conci Processo de Visualização https://www.youtube.com/watch?v=ogqam2mykng Processo de

Leia mais

Introdução a Programação de Jogos

Introdução a Programação de Jogos Introdução a Programação de Jogos Aula 05 Introdução ao Löve Edirlei Soares de Lima Hello World em Löve function love.draw() love.graphics.print("hello World", 360, 300) end O comando

Leia mais

Algoritmos e Técnicas de Programação

Algoritmos e Técnicas de Programação Algoritmos e Técnicas de Programação Estrutura, Visualg e Variáveis filipe.raulino@ifrn.edu.br Programação Estruturada A programação estruturada (Top-Down) estabelece uma disciplina de desenvolvimento

Leia mais

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br Computação Eletrônica Strings Prof: Luciano Barbosa Recapitulando: Vetores Representar uma coleção de variáveis de um mesmo tipo em uma dimensão Ex: float notas[5]; ou float notas[5] = {2.5,3.2,1.9,4.1,2.0};

Leia mais

Introdução à Programação C

Introdução à Programação C Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Estado A interação com o usuário de nossas aplicações iniciais é bem linear: entrada com scanf, saída com puts

Leia mais

Aula 4 Introdução ao C

Aula 4 Introdução ao C Considere o nosso MSC. O Processador Central, entende o conjunto de instruções, leia, imprima, atribuição e condicional e com ela resolvemos vários problemas, construindo vários algoritmos. As instruções

Leia mais

Introdução à linguagem de programação C. Alexandre Mota

Introdução à linguagem de programação C. Alexandre Mota Introdução à linguagem de programação C Alexandre Mota acm@cin.ufpe.br Do código-fonte ao executável Nossa preocupação maior neste curso está com o código-fonte. Nossa carta de intenções para com o computador!

Leia mais

Introdução à Ciência da Computação

Introdução à Ciência da Computação Créditos Introdução à Ciência da Computação Tópicos Preliminares em Programação Exceto por adaptações e complementos menores, o material a seguir é composto de slides gentilmente cedidos por: Prof. Rudinei

Leia mais

Refinamentos sucessivos

Refinamentos sucessivos Refinamentos sucessivos Objetivos: Estudar a técnica de refinamentos sucessivos Jogo: 2048 Implementaremos o jogo 2048, com o objetivo de estudar a manipulação dos elementos de uma matriz Utilizaremos

Leia mais

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini Apresentação do Professor Professor: José Carlos Perini E-mail: jose.perini@metrocamp.edu.br Blog: http://profperini.com Formação

Leia mais

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ACTIONSCRIPT 3. Prof. Dr. Daniel Caetano PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ACTIONSCRIPT 3 Prof. Dr. Daniel Caetano 2012-2 Objetivos Apresentar os conceitos básicos da linguagem ActionScript 3.0 Capacitar o aluno para criar programas

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens 1 Ciência da Computação Processamento Digital de Imagens Prof. Sergio Ribeiro Tópicos Introdução Espectro Eletromagnético Aquisição e de Imagens Sensoriamento Remoto 2 Introdução Espectro Eletromagnético

Leia mais

LINGUAGEM C: ARRAY: VETORES E MATRIZES

LINGUAGEM C: ARRAY: VETORES E MATRIZES LINGUAGEM C: ARRAY: VETORES E MATRIZES Prof. André Backes POR QUE USAR ARRAY? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Ciência da Computação Processamento Digital de Imagens Prof. Sergio Ribeiro Tópicos Introdução Espectro Eletromagnético Aquisição e Digitalização de Imagens Efeitos da Digitalização Digitalização Sensoriamento

Leia mais

3.1 - Funções para manipular dados de entrada e saída padrão

3.1 - Funções para manipular dados de entrada e saída padrão 1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado

Leia mais

Matrizes esparsas: definição

Matrizes esparsas: definição Matrizes esparsas: definição o objetivo é mostrar os métodos de armazenamento e manipulação de matrizes esparsas esparsidade de uma matriz é a relação entre o número de elementos nulos de uma matriz e

Leia mais

FACCAT Sistemas de Informação. Estruturas de Dados

FACCAT Sistemas de Informação. Estruturas de Dados FACCAT Sistemas de Informação Estruturas de Dados Aula 1 http://professores.faccat.br/azambuja (Estrutura de Dados) Definição de variáveis Podemos imaginar uma variável como o local onde se pode colocar

Leia mais

4. Curvas Paramétricas e Transformações 2D

4. Curvas Paramétricas e Transformações 2D 4. Curvas Paramétricas e Transformações 2D Curvas Paramétricas (fonte: Wikipédia) Em matemática, uma equação paramétrica é uma forma de representar uma curva (ou, em geral, uma superfície) como a imagem

Leia mais

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha LINGUAGEM DE PROGRAMAÇÃO C AULA 2 Professor: Rodrigo Rocha TIPOS, VARIÁVEIS E CONSTANTES Tipos de Dados Variáveis Constantes Introdução a entrada e saída Printf Scanf Ferramentas: Dev-C++ Code::Blocks

Leia mais

Conversão de Bases. Introdução à Organização de Computadores 5ª Edição/2007 Página 54. Sistemas Numéricos - Aritmética. Prof.

Conversão de Bases. Introdução à Organização de Computadores 5ª Edição/2007 Página 54. Sistemas Numéricos - Aritmética. Prof. Conversão de Bases Introdução à Organização de Computadores 5ª Edição/2007 Página 54 1 NOTAÇÃO POSICIONAL - BASE DECIMAL O SISTEMA DE NUMERAÇÃO É FORMADO POR UM CONJUNTO DE SÍMBOLOS UTILIZADOS PARA REPRESENTAR

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

Tipos Algébricos. Programação Funcional. Capítulo 11. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto

Tipos Algébricos. Programação Funcional. Capítulo 11. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto Programação Funcional Capítulo 11 Tipos Algébricos José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2012.1 1/33 1 Tipos Algébricos 2/33 Tópicos 1 Tipos Algébricos 3/33

Leia mais

Computação 2. Aula 3. Diego Addan Vetores de caracteres (strings)

Computação 2. Aula 3. Diego Addan Vetores de caracteres (strings) Computação 2 Aula 3 Vetores de caracteres (strings) Diego Addan diegoaddan@gmail.com Vetor de caracteres (Strings) Uma cadeia de caracteres, mais conhecida como string, é uma seqüência de caracteres (letras

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2013-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos

Leia mais

Aula 10: Introdução a Vetores e Matrizes

Aula 10: Introdução a Vetores e Matrizes Aula 10: Introdução a Vetores e Matrizes Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Vetores e Matrizes Programação de Computadores IV 1 / 50 Agenda

Leia mais

Algoritmo e Programação Matemática

Algoritmo e Programação Matemática Algoritmo e Programação Matemática Fundamentos de Algoritmos Parte 1 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Dados A funcionalidade principal de um computador

Leia mais

Manual de Utilização da ferramenta IPTraf Laboratório de Redes de Alta Velocidade COPPE / UFRJ

Manual de Utilização da ferramenta IPTraf Laboratório de Redes de Alta Velocidade COPPE / UFRJ Manual de Utilização da ferramenta IPTraf Laboratório de Redes de Alta Velocidade COPPE / UFRJ versão 1.0 Introdução O portal IpTraf Um dos maiores desafios no gerenciamento de backbones IP é identificar

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA DIM0320 Algoritmos e Programação de Computadores #VARIÁVEIS #TIPOS DE DADOS E L I EZ I O S O A R ES E L I EZ

Leia mais

Unidade 5: Introdução à Programação com Python Prof. Daniel Caetano

Unidade 5: Introdução à Programação com Python Prof. Daniel Caetano Informática para Engenharia 1 Unidade 5: Introdução à Programação com Python Prof. Daniel Caetano Objetivo: Explicitar os elementos básicos envolvidos na programação com a linguagem Python. Bibliografia:

Leia mais

Considere uma máquina que utiliza uma palavra de 10 bits. Suponha o seguinte padrão de bits:

Considere uma máquina que utiliza uma palavra de 10 bits. Suponha o seguinte padrão de bits: PROVA DE CONHECIMENTOS ESPECÍFICOS 1 a QUESTÃO: (1, ponto) Representação binária Considere uma máquina que utiliza uma palavra de 1 bits. Suponha o seguinte padrão de bits: 1111. a) Indique o valor em

Leia mais

Linguagem de programação: Pascal

Linguagem de programação: Pascal Aula 04 Linguagem de programação: Pascal Prof. Tecgº Flávio Murilo 26/03/2013 1 Pascal Introdução Pascal é uma linguagem de programação estruturada, criada em 1970 pelo suíço Niklaus Wirth, dando este

Leia mais

Texto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site (autor: desconhecido).

Texto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site   (autor: desconhecido). Texto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site http://www.portaldaprogramacao.com (autor: desconhecido). Leitura indicada: Notas de Aula de Algoritmos e Programação

Leia mais

Aula 15 Variáveis Indexadas (vetores)

Aula 15 Variáveis Indexadas (vetores) Aula 15 Variáveis Indexadas (vetores) Além das variáveis normais já conhecidas, podemos ter também variáveis indexadas. Tais variáveis são referenciadas por um nome e um índice. Especialmente úteis para

Leia mais

Programação de Computadores III

Programação de Computadores III Programação de Computadores III Aula 3 Professora Bianca (Sala 302 Bloco E) bianca@ic.uff.br http://www.ic.uff.br/~bianca/prog3/ Aula 3-12/09/2006 1 Aula de Hoje Revisão da aula passada: Conceitos gerais

Leia mais

CI208 - Programação de Computadores. Aula 24: Arrays. Prof. MSc. Diego Roberto Antunes

CI208 - Programação de Computadores. Aula 24: Arrays. Prof. MSc. Diego Roberto Antunes CI208 - Programação de Computadores Aula 24: Arrays Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas Departamento de Informática

Leia mais

Mídias Discretas. Introdução à Ciência da Informação

Mídias Discretas. Introdução à Ciência da Informação Mídias Discretas Introdução à Ciência da Informação Mídias Discretas Mídias discretas (estáticas) Texto Gráficos e Imagens Estáticas Caracteres são convertidos para uma representação com um número fixo

Leia mais

Oficina de Python Prof. Me. José Carlos Perini

Oficina de Python Prof. Me. José Carlos Perini Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Imagem Digital. Claudio Carvilhe

Imagem Digital. Claudio Carvilhe Imagem Digital Claudio Carvilhe Imagem Digital Roteiro Introdução. Pixel. Resolução espacial. Cor. Processamento de imagens. Introdução Informação Visual: Imagem vista na tela. Informação Descritiva: Modelo

Leia mais

Antes de começarmos o processo de Vetorização, precisamos saber a diferença entre imagem e vetor.

Antes de começarmos o processo de Vetorização, precisamos saber a diferença entre imagem e vetor. Parte 1: Vetorizando 1.1: Imagem e Vetor Antes de começarmos o processo de Vetorização, precisamos saber a diferença entre imagem e vetor. Imagens são quaisquer tipos de figura apresentada ao usuário do

Leia mais

Capítulo 7 Matriz. Roteiro

Capítulo 7 Matriz. Roteiro Capítulo 7 Matriz Licenciatura em Computação Fundamentos de Lógica para Programação Prof. Nícolas Trigo nicolas.trigo@ifsertao-pe.edu.br http://professor.ifsertao-pe.edu.br/nicolas.trigo Roteiro Definição

Leia mais