Processing Elementos da Linguagem
|
|
|
- Adelino Gabeira do Amaral
- 7 Há anos
- Visualizações:
Transcrição
1 Processing Elementos da Linguagem Os comentários são ignorados pelo computador, mas são importantes para as pessoas. Através dos comentários podemos apontar notas e lembretes sobre a própria estrutura do código. Todas as letras e símbolos que não são comentários são traduzidos pelo compilador. Comentário (//) // Duas barras são utilizadas para denotar um comentário // não deve existir espaço entre as barras /* Essa forma é usada para a escrita de comentários mais longos */
2 Processing Elementos da Linguagem As funções permitem o desenho de formas, seleção de cores, cálculos e a execução de outros tipos de ação. O nome de uma função geralmente começa com letra minuscula e é seguido por parênteses. Os parâmetros são os elementos separados por vírgula que ficam dentro dos parênteses. Algumas funções não possuem parâmetros enquanto outras podem conter muitos. Funções // A função size contem 2 parametros. // O primeiro é a largura da janela de display e o segundo // define a altura size(200,200); // Essa versão da função background contem apenas 1 // parametro. Ele determina a quantidade de cinza do fundo // que pode variar de 0 (preto) (branco) background(102);
3 Processing Elementos da Linguagem As expressões estão para o software assim como as frases estão para a linguagem humana. Geralmente elas são combinações de operadores como +, *, e /. Expressões ((3+2)*-10)+1 6>3 54<50
4 Processing Elementos da Linguagem O Processing diferencia caracteres maíusculos e minúsculos (case sensitive).por exemplo, escrever Size pode produzir um erro. Na digitação, a quantidade de espaços entre os elementos não prejudica a execução correta do código.
5 Processing Elementos da Linguagem As funções print() e printnl() podem ser usadas para mostrarem dados durante a execução de um programa. As funções não enviam páginas para uma impressora, mas escrevem texto para o console. O console também pode ser usado para mostrar o estado ou valor de uma variável, confirmar um evento ou checar os dados enviados por um dispositivo externo. Mensagens no Console print() e println() // Para imprimir um texto na tela println( Processing é bacana ); //Enquanto println() salta para a próxima linha após a impressão //o comando print() não salta print( 10 ); println( 20 ); println( 30 );
6 Processing Coordenadas e Primitivas A tela do computador é composta de uma grade de milhões de pixels. Uma posição nesta grade corresponde a uma coordenada (x-horizontal e y-vertical. No Processing a origem destas coordenadas (0,0) está no canto superior esquerdo da tela. Logo, os valores das coordenadas aumentam de cima para baixo e da esquerda para direita. Podemos desenhar algumas figuras geométricas primitivas como pontos, linhas e planos utilizando essas coordenadas. point (x,y) // um ponto corresponde a um pixel desenhado na coordenada x,y point (10,30); // pontos com x,y identicos formam uma diagonal point (20,20); point (30,30); point (40,40); point (50,50); point (60,60); // pontos negativos não são visiveis point (-10,20);
7 Processing Coordenadas e Primitivas Além de pontos podemos desenhar: linhas,triângulos,quadriláteros, retângulos,elipses e curvas bezier. line (x1, y1, x2, y2) // x1,y1 é o inicio da linha e x2,y2 o fim line (10,30,90,30) // linhas verticais possuem x1 e x2 identicos line (40,10,40,90); line (50,10,50,90); // linhas horizontais possuem y1 e y2 identicos line (10,30,90,30); line (10,40,90,40); Exercício: Desenhar duas linhas que compartilhem um ponto de conexão
8 Processing Coordenadas e Primitivas Além de pontos podemos desenhar: linhas,triângulos,quadriláteros, retângulos,elipses e curvas bezier. triangle(x1, y1, x2, y2, x3, y3) // os 3 pares de coordenadas definem os vertices do triangulo triangle (60,10,25,60,75,65); quad(x1, y1, x2, y2, x3, y3, x4, y4) // os 4 pares de coordenadas definem os vertices do poligono quad (20,20,20,70,60,90,60,40); quad (20,20,70,-20,110,0,60,40); rect(x, y, largura, altura) // os 2 primeiros parametros definem a coordenada do vertice superior esquerdo // o terceiro e quarto parametro define a largura e altura do retangulo rect (15,15,40,40); rect (55,55,25,25); ellipse(x, y, largura, altura) // os 2 primeiros parametros definem a localização do centro da elipse // o terceiro e quarto parametro define a largura e altura da elipse ellipse(35,0,120,120); ellipse (38,62,6,6); ellipse (40,100,70,70);
9 Processing Coordenadas e Primitivas A função bezier desenha uma curva orientada por uma série de pontos de controle e âncoras. A curva é desenhada entre os pontos de âncora e os pontos de controle determinam sua forma. bezier(x1, y1, cx1, cy1, cx2,cy2, x2, y2) // a função contem 8 parametros que determinam 4 pontos // a curva é desenhada entre o primeiro e quarto ponto // os pontos de controle são determinados pelo segundo e terceiro parametro bezier(32,20,80,5,80,75,30,75) * ver exemplo na pasta Elementos // podemos visualizar estes pontos // basta desenhar circulos nas coordenadas dos pontos // e linhas que ligam estes pontos bezier(85,20,40,10,60,90,15,80); line(85,20,40,10); ellipse(40,10,4,4); line(60,90,15,80); ellipse(60,90,4,4);
10 Processing Coordenadas e Primitivas No código, a ordem das sentenças define qual figura aparece em primeiro plano. Ordem de desenho // se um retangulo é desenhado na primeira linha // ele é mostrado antes de uma elipse que é desenhada na segunda linha // revertendo a ordem colocamos o retangulo por cima rect(15,15,50,50); ellipse(60,60,55,55); ellipse(60,60,55,55); rect(15,15,50,50);
11 Processing Coordenadas e Primitivas A função fill altera o valor de preenchimento das figuras e a stroke altera o valor de contorno. Se nenhum valor de preenchimento é definido, o valor 255 (branco) é usado. No caso do contorno 0 (preto) é o valor default. fill (cinza, transparencia ) - stroke(cinza) // desenha um retangulo com preenchimento cinza fill(153); rect(15,15,50,50); // desenha um retangulo branco com contorno cinza stroke(153); rect(15,15,50,50); * ver exemplo na pasta Elementos // desenha retangulos com niveis de transparencia fill(0); rect(0,40,100,20); fill(255,51); rect(0,20,33,60); fill(255,127); rect(33,20,33,60); fill(255,204); rect(66,20,33,60); Obs: as funções nofill() e nostroke() interrompe o desenho de preenchimento e contorno automático (default).
12 Processing Coordenadas e Primitivas Os atributos de geometria também podem ser modificados. As funções smooth e nosmooth habilita e desabilita a suavização (antialiasing). Uma vez usadas, toda as formas são afetadas. smooth ( ) - nosmooth( ) smooth(); ellipse(30,48,36,36); nosmooth(); ellipse(70,48,36,36);
13 Processing Coordenadas e Primitivas Os atributos das linhas podem ser controlados por strokeweight, strokecap e strokejoin. * ver exemplo na pasta Elementos strokeweight(espessura) smooth(); line (20,20,80,20); strokeweight(6); line(20,40,80,40); strokeweight(18); line(20,70,80,70); strokecap( ) // strokecap requer apenas um parametro que pode ser : ROUND, SQUARE ou PROJECT smooth(); strokeweight(12); strokecap(round); line(20,30,80,30); strokecap(square); line(20,50,80,50); strokecap(project); line(20,70,80,70);
14 Processing Coordenadas e Primitivas Exercício - Construir uma composição contendo uma elipse e uma linha - Modificar o código do exercicio anterior alterando o preenchimento, contorno e fundo (background).
15 Processing Cores Trabalhar com cores na tela do computador é diferente da aplicação de pigmentos sobre papel ou tela. Por exemplo, se adicionamos todas as cores juntas na tela do computador temos o branco como resultado. Na tela do computador misturamos as cores com adição de luz. No computador, a maneira mais comum de determinar uma cor é através do código RGB- ele determina a quantidade de vermelho, verde e azul. A intensidade de cada elemento de cor é usualmente especificada com valores entre 255 e 0. background(r,g,b) fill(r,g,b) fill(r,g,b,alpha) stroke(r,g,b) stroke(r,g,b,alpha) // desenhando um quadrado com preenchimento verde background(129,130,87); nostroke(); fill(174,221,60); rect(17,17,66,66); // desenhando um quadrado com contorno verde sem preenchimento background(129,130,87); nofill(); strokeweight(4); stroke(174,221,60); rect(19,19,62,62);
16 Processing Cores No processing, podemos selecionar o valor RGB de uma cor utilizando a ferramenta Color Selector que está no Menu Tools.O RGB do vermelho puro, por exemplo, é (255,0,0) ou #FF0000 (notação hexadecimal). Além do RGB, podemos determinar a transparência (alpha) de uma cor utilizando o quarto parâmetro das funções. * ver exemplo na pasta Elementos // desenhando retangulos com alphas diferentes background(116,193,206); nostroke(); fill(129,130,87,102); rect(20,20,30,60); fill(129,130,87,204); rect(50,20,30,60);
17 Processing Cores Usando a sobreposição de formas, a transparência pode ser usada para a criação de novas cores. * ver exemplo na pasta Elementos // desenhando circulos com alphas diferentes background(0); nostroke(); smooth(); fill(242,204,47,160); // amarelo ellipse(47,36,64,64); fill(174,221,60,160); // verde ellipse(90,47,64,64); fill(116,193,206,160);// azul ellipse(57,79,64,64); // Experimente mudar a tonalidade do background
18 Processing Lógica e Algoritmo A elaboração de videogames, planilhas ou editores utilizam estruturas lógicas comuns como sequências lineares, decisões e repetições. Qualquer aplicação computacional estabelece um problema a ser resolvido e a divisão deste problema em unidades finitas faz parte do cotidiano de qualquer desenvolvedor. Antes de desenvolver qualquer software devemos saber representar os problemas envolvidos nesta atividade. Um algoritmo é o conjunto de regras que fornece uma sequência de operações para resolver um problema especifico. O fluxograma representa um algoritmo de maneira diagramática
19 Processing Lógica e Algoritmo A elaboração de videogames, planilhas ou editores utilizam estruturas lógicas comuns como sequencias lineares, decisões e repetições. Qualquer aplicação computacional estabelece um problema a ser resolvido e a divisão deste problema em unidades finitas faz parte do cotidiano de qualquer desenvolvedor. Antes de desenvolver qualquer software devemos saber representar os problemas envolvidos nesta atividade. Um algoritmo é o conjunto de regras que fornece uma sequencia de operações para resolver um problema especifico. De novo, o fluxograma representa um algoritmo de maneira diagramática
20 Processing Lógica e Algoritmo Os algoritmos podem ser representados no formato de diagrama, linguagem natural ou pseudocódigo. Descrição do algoritmo em linguagem natural: Iniciar o programa O contador inicia com valor um. Se o contador não chegar a dez eu imprimo a palavra teste e incremento o contador. Se o contador for maior que 10 eu encerro programa. Descrição do programa em pseudocódigo: INICIO Contador=1 PASSO 1 { SE (contador<=10) ENTÃO escrever teste contador=contador+1 IR para PASSO 1 SENÃO IR para FINAL FINAL
21 Processing Estruturas Além dos elementos geométricos, o Processing pode ainda manipular textos e imagens. Antes de trabalhar com estes recursos vamos examinar um pouco as estruturas lógicas utilizadas na maioria das linguagens de programação. - Variáveis - Operações e funções matemáticas - Decisões e condicionais - Repetição
22 Processing Variáveis As memórias físicas dos computadores possuem um sistema de endereçamento para armazenagem e recuperação randomica de dados. Na programação, as variáveis correspondem a estes endereços e podem, por exemplo, salvar a posição de uma figura, do armazenamento de uma cor, ou de medir mudanças contínuas. O Processing pode armazenar e modificar diferentes tipos de dados, incluindo numeros, letras, palavras, cores, Imagens, fontes e valores booleanos (verdadeiro, falso). // as variáveis permitem a reutilização de uma informação durante a execução // de um programa. Toda variável possui 2 partes, um nome e um valor. // Adicionalmente, uma variável possui um tipo ou categoria de dado que ela // pode armazenar. // A variável deve ser declarada antes de ser usada. Esta declaração define O nome da variável e o tipo de valor que pode armazenar. int x; // Declara a variável x do tipo int float y; boolean b; x=50; // atribue um valor para x; Y=12.6; b=true; No Actionscript (Flash) a declaração de variáveis é um pouco diferente: var x:int; var b:boolean;
23 Processing Variáveis Após a declaração de uma variável não podemos alterar o tipo de dados. Podemos declarar mais de uma variável em apenas uma linha de código, e os valores adicionados posteriormente. float x, y, z; x=-3.9; y= 10.1; z=124.23; // podemos usar um atalho para declarar e associar um valor na mesma linha int x=50; boolean b=true;
24 Processing Operações Matemáticas As operações matemáticas são importantes, pois com elas podemos manipular resultados que podem controlar a posição e outras propriedades dos elementos visuais = (atribuição) + (adição) - (subtração) * (multiplicação) / (divisão) % (módulo) ( ) ++ (incremento) - (decremento) += (atribuição aditiva) -= (atribuição subtrativa) *= (atribuição multiplicativa) /= (atribuição divisão)! (negação) Funções Aritmeticas ceil(2.1) = 3 arredonda para cima floor(2.1) = 2 arredonda para baixo round(2.9)= 3 min(5,9)= 5 valor máximo valor minimo na série max(-4,-12,-9)= -4 valor máximo na série
25 Processing Operações Matemáticas Através do sinal = podemos atribuir valores ou expressões a uma determinada variável. * ver exemplo na pasta ESTRUTURA // no exemplo, definimos uma variável com o tipo inteiro (int) // e o nome da variável é cinza // inicialmente a variável recebe um valor (153) através do sinal = (atribuição) // a variável é utilizada pela função fill() para o prenchimento do retangulo // posteriormente a variável recebe o valor de uma expressão (cinza+102) // isto é, recebe o valor da própria variável adicionada de 102 int cinza=153; fill(cinza); rect(10,10,55,55); cinza=cinza+102; fill(cinza); rect(35,30,55,55);
26 Processing Operações Matemáticas Ainda podemos usar o sinal de atribuição (=) juntamente com sinais aritméticos (+,-,*,/) para criar atalhos capazes de incrementar ou decrementar valores numa variável. int x=1 println (x); // imprime 1 no console x++ // equivalente a x=x+1 println(x); // imprime 2 no console int y=1; println(y); y-- println(y); int x=1; println(x); x+=5; println(x); //imprime 6 no console // ainda podemos inverter o sinal de um valor int x=5; x=-x; println(x); //imprime -5 no console
27 Processing Decisões Na maioria das linguagens os programas são executados linearmente, linha a linha, de baixo para cima. Apesar disso, podemos alterar a ordem de fluxo dos programas utilizando estruturas decisórias que podem desviar intencionalmente a ordem de execução linear. Estas estruturas tambem são utilizadas quando precisamos saltar certos pontos de processamento que necessitam que certas condições sejam previamente validadas. Portanto, para verificarmos se uma condição é verdadeira ou falsa devemos utilizar expressões relacionais. > maior que < menor que >= maior ou igual a <= menor ou igual a == equivalente a!= diferente (não equivalente a) println (3>5); //imprime false println (3>=5);//imprime false println (3<=5);//imprime true println (5==5);//imprime true println (5<=5); // imprime true println (5!=5);//imprime false println (5==5);//imprime true
28 Processing Decisões Uma condicional permite ao programa fazer decisões sobre quais linhas de código deve ou não executar. Eles executam ações apenas quando uma condição especifica é encontrada. As condicionais permitem que um Programa se comporte diferente dependendo do valor de suas variáveis. No Processing, assim como em outras linguagens utilizamos a estrutrura if para construir tais decisões. Estrutura IF A (condição) deve ser uma expressão que resulte em true (verdadeiro) ou false. Quando a expressão resulta em true, o código dentro das chaves { é executado. Se a expressão é false, o código (bloco de sentenças) é ignorado. if (condição) { sentença sentença sentença * ver exemplo na pasta ESTRUTURA // altere o valor de x para mudar o resultado int x= 150; if (x>100) { ellipse(50,50,36,36); if (x<100) { rect(35,35,30,30); line(20,20,80,80);
29 Processing Decisões Ainda podemos utilizar a estrutura IF...ELSE para aumentar as possibilidades de execução no mesmo bloco de código. Estrutura IF...ELSE Se a condição for verdadeira o primeiro bloco de instruções é executado, senão (else), se a condição for false, o segundo bloco é executado. if (condição) { bloco1 else { bloco2 * ver exemplo na pasta ESTRUTURA // experimente alterar o valor de x int x= 90; if (x>100) { ellipse (50,50,36,36); else { rect(33,33,34,34); line (20,20,80,80);
30 Processing Decisões Dentro de uma estrutura condicional podemos aninhar outras condicionais, estruturando uma sequência de testes posicionados em cascata. // qual é o resultado deste código elipse, linha ou retangulo? int x= 420; if (x>100) { if (x<300) { ellipse (50,50,36,36); else { line(50,0,50,100); else { rect (33,33,34,34);
31 Processing Decisões Os operadores lógicos são usados para combinar duas ou mais expressões relacionais ou inversão de seus valores. Eles permitem a consideração de condições simultâneas. Operadores Lógicos && AND (todas as condições devem ser true) OR (uma das condições deve ser true)! NOT (o inverso da condição deve ser true) Na tabela seguinte verificamos todas as combinações possíveis e seus resultados: Expressão Resultado true && true true && false false && false true true true false false false!true!false true false false true true false false true
32 Processing Decisões * ver exemplo na pasta ESTRUTURA // neste exemplo apenas a linha é desenhada int a=10; int b=20; if ((a>5) && (b<30)) { // true && true line (20,50,80,50); if ((a>15) && (b<30)) { // false && true ellipse (50,50,36,36); // neste exemplo a linha é desenhada, pois a variável b=true boolean b= true; if (b==true) { // se b é true desenhe a linha line (20,50,80,50); if (!b== true) { // se b é false desenhe a elipse ellipse (50,50,36,36);
33 Processing Repetição As estruturas iterativas são utilizadas para compactar longas linhas de código repetitivo. Diminuindo a extensão do código tornamos os programas mais flexíveis em termos de manutenção e também ajuda na redução de erros. A estrutura for realiza cálculos e açoes repetitivas. Estrutura FOR for (inicio; teste; atualização) { Sentença Sentença Sentença O parenteses associado a estrutura contem tres elementos: inicio, teste e atualização. As sentenças dentro do bloco são executadas continuamente enquando o teste é validado como TRUE. O elemento inicio determina o valor inicial da variável utilizada no teste. O elemento atualização é usado para modificar a variável após cada iteração. Sem o uso da estrutura for, se queremos desenhar 20 linhas horizontais paralelas devemos repetir o comando line 20 vezes, alterando uma por uma as coordenadas y (vertical) de cada linha. do código line (20,0,80,0); line (20,5,80,5); line (20,10,80,10); line (20,15,80,15);... line (20,95,80,95);
34 Processing Repetição Estrutura FOR Com a estrutura for as 20 linhas de código são reduzidas para apenas 3. // a variável i inicia com valor 0 // a condição esperada é que i seja menor que 100 // na atualização, a variável i é incrementada de 5 (i+=5) // em cada iteração o código desenha uma linha, variando as coordenadas y // pois, em line (20,i,80,i), y1 e y2 equivalem a i // o código é repetido 20 vezes, isto é, enquanto (i<100) seja verdadeiro for (int i=0; i<100; i+=5) { line (20,i,80,i);
35 Processing Repetição A estrutura de repetição pode ser utilizada para o desenho de padrões pela simples modificação dos valores. * ver exemplo na pasta ESTRUTURA ex.01, ex.02, ex.03 // neste exemplo varia a coordenada x for (int x= -16; x<100; x+=10) { line (x,0, x+15, 50); strokeweight(4); for (int x= -8; x<100; x+=10) { line (x, 50, x+15, 100); // neste exemplo varia a largura e altura da elipse nofill(); for (int d=150; d>0;d-=10){ ellipse (50,50,d,d); // neste exemplo variamos a coordenada x // enquanto x for menor ou igual a 50 as coordenadas y1 e y2 equivale a 20 e 60 // senão, x continua variando mas coordenadas y1 e y2 mudam para 40,80 for (int x=20; x<=85; x+=5) { if (x<=50) { line (x,20,x,60); else { line (x,40,x,80);
36 Processing Repetição A estrutura de repetição pode ser utilizada para o desenho de padrões pela simples modificação dos valores. * ver exemplo na pasta ESTRUTURA ex.04, ex.05 // neste exemplo o código desenha uma série de linhas verticais, variando as coordenadas x1 e x2 // varia tambem a tonalidade de cinza (255-i) em cada iteração for (int i=0; i<100; i+=2) { stroke (255-i); line (i, 0, i, 200); // neste exemplo o código desenha uma série de retangulos // o preenchimento de cada retangulo varia a cada iteração // veja que o parametro alpha (129,130,87,i) assume o valor da variável i // a cada iteração o valor de x tambem é incrementado (x+=20) // pois os retangulos devem estar um ao lado do outro background (116, 193, 206); int x=0; nostroke(); for (int i=51; i<=255; i+=51) { fill (129,130,87,i); rect (x,20,20,60); x+=20;
37 Processing Repetição Podemos usar a repetição para a variação de matiz, saturação e brilho das cores. Além do RGB, no Processing podemos alterar as referências para uma cor utilizando a função colormode. * ver exemplo na pasta ESTRUTURA ex.06, ex.07, ex.08 // No modo HSB, H (hue) corresponde ao matiz, S (saturação ou pureza) e B (brilho) // equivale a quantidade de luz. // No exemplo, o código desenha uma série de linhas justapostas // Variando o matiz (i*2.5 no parametro H) da função stroke colormode(hsb); for (int i=0; i<100; i++) { stroke (i*2.5,255,255); line (i,0,i,100); // No exemplo, o código desenha uma série de linhas justapostas // Variando a saturação (i*2.5 no parametro S) da função stroke colormode(hsb); for (int i=0; i<100; i++) { stroke (132,i*2.5, 204); line (i,0,i,100); // No exemplo, o código desenha uma série de linhas justapostas // Variando o brilho (i*2.5 no parametro B) da função stroke colormode(hsb); for (int i=0; i<100; i++) { stroke (132, 108,i*2.5); line (i,0,i,100);
38 Processing Repetição Podemos usar a repetição para a variação de matiz, saturação e brilho das cores. Além do RGB, no Processing podemos alterar as referencias para uma cor utilizando a função colormode. A função colormode pode usar apenas um parametro colormode (HSB) ou colormode(rgb). Quando utilizando HSB ainda é possível setar mais 3 parametros ColorRange(HSB, valor1, valor2, valor3) Os valores determinam o espectro( range) de cor, saturação e brilho possiveis de serem manipulados - valor 1 equivale ao alcance maximo de matizes 360 é o valor máximo - valor 2 equivae ao alcance maximo de saturação 100% é o valor máximo - valor 3 equivale ao alcance máximo de brilho 100% é o valor máximo * ver exemplo na pasta ESTRUTURA ex.09, ex.10 // exemplo de transição entre amarelo e azul // escolhemos o valor 65 como matiz inicial para amarelo // este valor é incrementado até chegar a 245 (65+180)que corresponde ao matiz do azul colormode (HSB, 360, 100, 100); for (int i=0; i<100; i++) { float matiz= 65+(i*1.8); stroke (matiz, 70, 80); line (i,0,i,100); // exemplo de transição entre azul e verde // escolhemos o valor 200 como matiz inicial para o azul // este valor é decrementado até chegar a 80 ( ) que corresponde ao matiz do verde colormode (HSB, 360, 100, 100); for (int i=0; i<100; i++) { float matiz= 200-(i*1.2); stroke (matiz, 70, 80); line (i,0,i,100);
39 Processing Repetição Utilizando repetição e colormode (HSB,valor1,valor2,valor3) Desenhar uma série de 10 quadrados com 20 pixels de lado com preenchimento e sem contorno Os quadrados devem estar dispostos em fileira horizontal Os quadrados devem estar separados por um intervalo de 5 pixels Escolher qualquer matiz para preenchimento (fill) desde que haja variação crescente no brilho Não esquecer o tamanho da janela ex: size (250,30); Não esquecer o valor máximo do brilho e saturação é 100(%).
40 Processing Repetição Utilizando repetição e colormode (HSB,valor1,valor2,valor3) Desenhar uma série de 10 quadrados com 20 pixels de lado com preenchimento e sem contorno Os quadrados devem estar dispostos em fileira horizontal Os quadrados devem estar separados por um intervalo de 5 pixels Escolher qualquer matiz para preenchimento (fill) desde que haja variação crescente no brilho Duas soluções possíveis size(250,30); nostroke(); colormode(hsb,360,100,100); for (int i=0; i<250;i+=25) { fill(140,100,i*0.4); // brilho= i multiplicado por 0.4, pois i varia de 0 a 250 rect (i,5,20,20); size(250,30); nostroke(); int x=0; colormode(hsb,360,100,100); for (int i=0; i<10;i++) { fill(140,100,i*10); // brilho= i multiplicado por 10, pois i varia de 0 a 10 rect (x,5,20,20); x+=25;
41 Processing Repetição A estrutura FOR produz repetições em uma dimensão. Aninhando esta estrutura em outra cria-se uma iteração de duas dimensões. //No exemplo temos uma iteração de uma dimensão //O código desenha uma coluna de 10 pontos //Isso ocorre porque estamos variando a coordenada y enquanto x permanece constante (=10) for (int y=10; y<100; y+=10) { point(10,y); //No exemplo temos uma iteração de uma dimensão //O código desenha uma linha de 10 pontos //Isso ocorre porque estamos variando a coordenada x enquanto y permanece constante (=10) for (int x=10; x<100; x+=10) { point(x,10); * ver exemplo na pasta ESTRUTURA - ex.11 //No exemplo temos uma iteração de 2 duas dimensões //O código desenha uma matriz de 10x10 pontos //Isso ocorre porque dentro de cada iteração correspondente a uma linha (variação de y) //está aninhada uma iteração de 10 repetições que posiciona os pontos ao longo //das colunas (variação do x) for (int i=10; i<100; i+=10) { for (int j=10; j<100; j+=10) { point (i,j);
42 i vale 10 for(int i = 10; i <= 100; i += 10) { for (int j = 10; j <= 100; j += 10) { point(i, j); j i
43 j vale 10 For (int i = 10; i <= 100; i += 10) { for(int j = 10; j <= 100; j += 10) { point(i, j); j i
44 For (int i = 10; i <= 100; i += 10) { for (int j = 10; j <= 100; j += 10) { point(i, j); j i i=10, j=10. Desenha um ponto em (10,10)
45 For (int i = 10; i <= 100; i += 10) { for (int j = 10; j <= 100; j += 10) { point(i, j); Agora estamos na parte interior do laço, Incrementando j com 10, verificando se j é menor ou igual a 100. Não é, então continuamos. j i
46 For (int i = 10; i <= 100; i += 10) { for (int j = 10; j <= 100; j += 10) { point(i, j); j i i continua igual a 10, mas j agora é igual a 20. Desenhamos o novo ponto, e então repetimos o laço.
47 For (int i = 10; i <= 100; i += 10) { for (int j = 10; j <= 100; j += 10) { point(i, j); j i Então, continuamos a repetir este laço de j até que ele passe de 100. E então?
48 For (int i = 10; i <= 100; i += 10) { for (int j = 10; j <= 100; j += 10) { point(i, j); Bem, agora o programa saiu do laço do j, parece que ainda esta dentro do laço do i, e incrementa i com 10. j i
49 For (int i = 10; i <= 100; i += 10) { for (int j = 10; j <= 100; j += 10) { point(i, j); O programa atinge o laço de j novamente. Assim sendo, ele repete o desenho dos pontos tudo de novo. Só que desta vez o i vale 20, então a coluna de pontos está mais à direita. j i
50 For (int i = 10; i <= 100; i += 10) { for (int j = 10; j <= 100; j += 10) { point(i, j); O laço de i continua incrementando desta maneira, desenhando colunas de pontos, até passar de 100. O program sai então deste código determinado pelas chaves do laço do i. j i
51 Processing Imagem O Processing pode carregar imagens GIF, JPEG e PNG. Da mesma forma que números inteiros podem ser armazenados em variáveis do tipo int e true ou false no tipo boolean, as imagens podem ser armazenadas em variáveis do tipo Pimage. Antes de ser mostrada na tela, uma imagem deve ser previamente carregada com a função loadimage(). A função image() mostra a imagem armazenada na variável. loadimage (nome da imagem) Pimage variável image (variável, x,y) image (variável, x,y,largura, altura) * ver exemplo na pasta ELEMENTOS // o arquivo da imagem deve estar na pasta data do sketch Pimage img; img=loadimage( arch.jpg ); image (img,0,0); // carregando uma imagem PNG com 8 bits alpha PImage img; img = loadimage("arch.png"); background(255); image(img, 0, 0); image(img, -20, 0);
52 Processing Imagem A função tint() pode colorizar uma imagem com tons de cinza ou RGB além de modificar a transparência (alpha). tint (r, g, b) tint (r, g, b,alpha) tint (cinza) tint (cinza,alpha) notint() * ver exemplo na pasta ELEMENTOS PImage img; // declara a variável img como tipo PImage img = loadimage("arch.jpg"); tint(102); // carrega a imagem arch.jpg na variável img // tingir de cinza image(img, 0, 0); notint(); // mostra a imagem no ponto 0,0 // sem tinta image(img, 50, 0); // mostra a imagem no ponto 50,0 PImage img; img = loadimage("arch.jpg"); background(255); tint(255, 102); //alpha é setado para 102 sem mudança na tinta image(img, 0, 0, 100, 100); tint(255, 204, 0, 153); //tinta é alterada para amarelo e alpha 153 image(img, 20, 20, 100, 100); // apenas uma parte da imagem é tinta
53 Processing Imagem Uma vez armazenada numa variável a imagem pode ser exibida a qualquer instante. * ver exemplo na pasta ELEMENTOS img = loadimage("arch.jpg"); background(255); tint(255, 51); for (int i = 0; i < 10; i++) { // desenha a imagem 10 vezes movimentando para a direita image(img, i*10, 0);
54 Processing Imagem A imagem é definida como uma grade de pixels especificados com valores que definem uma cor. Esses valores podem ser lidos com a função get(). get() * ver exemplo na pasta ELEMENTOS smooth(); strokeweight(8); line(0, 0, width, height); line(0, height, width, 0); nostroke(); ellipse(18, 50, 16, 16); // a variável cruz recebe a imagem formada por todos os pixels da janela = get() PImage cruz = get(); // a imagem contida em cruz é mostrada no ponto 42,30 com 40 pixels de largura e altura image(cruz, 42, 30, 40, 40);
55 Processing Imagem A função get() sempre captura todos os pixels mostrados na janela de display. Podemos usar a função image() para mostrar partes de uma imagem previamente carregada e capturada com get(). * ver exemplo na pasta ELEMENTOS PImage arvores; arvores = loadimage("topanga.jpg");// carrega a imagem topanga.jpg na variável arvores image(arvores, 0, 0); // mostra no display a imagem contida na variável arvores PImage crop = get(); // a variável crop contem a captura da janela tint(0,120,0); // escolhe um tint verde image(crop, 0, 50); // a imagem contida em crop é mostrada no ponto 0,50
56 Processing Imagem Quando usada com as coordenadas x,y, a função get() retorna valores que devem ser atribuídos a uma variável do tipo color. Esses valores podem ser usados para modificar a cor de outros pixels ou servir como parâmetro para as funções fill() e stroke(). get (x,y) PImage arvores; arvores = loadimage("topanga.jpg"); nostroke(); image(arvores, 0, 0); color c = get(20, 30); //a variável c (tipo color) armazena a cor do pixel situado em 20,30 fill(c); // a cor de preenchimento é setada para a cor armazenada na variável c rect(20, 30, 40, 40); // um retangulo é desenhado e preenchido com a cor capturada
57 Processing Imagem Toda variável do tipo Pimage possui sua própria função get(). Desta forma, podemos capturar os pixels de uma imagem isoladamente, independente do que é mostrado na janela de display. get (x,y,largura, altura) PImage arvores; arvores = loadimage("topanga.jpg"); stroke(255); strokeweight(12); image(arvores, 0, 0); line(0, 0, width, height); line(0, height, width, 0); // a variável arvorescrop armazena os pixels capturados diretamente da imagem arvores // os pixels são capturadas a partir do ponto 20,20 // e são armazenada numa area de 60x60 pixels PImage arvorescrop = arvores.get(20, 20, 60, 60); // a imagem capturada é mostrada no ponto 20,20 da janela de display // note que o desenho da cruz branca não foi capturada // escolhemos uma cor azul para colorir a imagem recortada tint (0,0,200); image(arvorescrop, 20, 20); * ver exemplo na pasta ELEMENTOS
58 Processing Texto As variáveis do tipo String podem armazenar palavras e sentenças envolvidas com aspas (" "); String variável String m1="avada "; String m2="kedrava"; String magia=m1+m2; println(magia); // imprime a combinação m1+m2 = Avada Kedrava * ver exemplo na pasta ELEMENTOS
59 Processing Texto Uma fonte de texto deve ser convertida para o o formato VLW para poder ser visualizada no Processing. No menu TOOLS existe a ferrementa Create Font que converte qualquer fonte do sistema e salva na pasta data do sketch. Após a conversão, a fonte pode ser carregada com a função loadfont(). A fonte carregada é atribuida a uma variável do tipo Pfont e pode então ser utilizada desde que seja o parâmetro para a função textfont(). A função text() é responsável pela exibição de qualquer caracter no display. PFont variável loadfont (arquivo-da-fonte.vlw) textfont (variável do tipo PFont) text (dado, x, y)-- o parametro dado pode ser String,int ou float. text (string, x, y, largura, altura) PFont ft; // declara a variável ft do tipo PFont ft = loadfont("ziggurat-32.vlw"); // carrega a fonte Ziggurat na variável ft textfont(ft); fill(0); // determina a fonte armazenada em ft para a tipografia text("lax", 0, 40); text("ams", 0, 70); // escreve LAX coordenada (0,40) // escreve AMS coordenada (0,70) text("fra", 0, 100); // escreve FRA coordenada (0,100) * ver exemplo na pasta ELEMENTOS
60 Processing Texto A função fill() é usada tambem para o texto, determinando a tonalidade de cinza ou cor e transparência. PFont font; font = loadfont("ziggurat-32.vlw"); textfont(font); fill(0); text(19, 0, 36); // escreve 19 na coordenada (0,36) text(72, 0, 70); // escreve 72 na coordenada (0,70) text('r', 62, 70); // escreve R na coordenada (62,70) * ver exemplo na pasta ELEMENTOS EX.04 PFont font; font = loadfont("ziggurat-72.vlw"); textfont(font); fill(0, 160); // preto com baixa opacidade text("1", 0, 80); text("2", 15, 80); text("3", 30, 80); text("4", 45, 80); text("5", 60, 80);
61 Processing Texto Atributos do Texto textsize (tamanho) textleading (distancia entre linhas) textalign (MODO) modo pode ser LEFT, CENTER ou RIGHT textwidth (string)-- retorna a largura do caracter ou string // reduzindo uma fonte de 32 pixels PFont font; font = loadfont("ziggurat-32.vlw"); textfont(font); fill(0); text("lnz", 0, 40); // grande textsize(18); text("stn", 0, 75); // médio textsize(12); text("bos", 0, 100); // pequeno * ver exemplo na pasta ELEMENTOS EX 05
62 Processing Texto // usando espacamento entre linhas PFont font; font = loadfont("ziggurat-12.vlw"); textfont(font); String lines = "L1 L2 L3"; textleading(10); fill(0); text(lines, 5, 15, 30, 100); textleading(20); text(lines, 36, 15, 30, 100); textleading(30); text(lines, 68, 15, 30, 100); // usando alinhamentos PFont font; font = loadfont("ziggurat-12.vlw"); textfont(font); line(50, 0, 50, 100); fill(0); textalign(left); text("left", 50, 20); textalign(right); text("right", 50, 40); textalign(center); text("center", 50, 80); * ver exemplo na pasta ELEMENTOS EX.06 EX.07
63 Processing Randomicidade A função random() é usada para criar valores imprevisíveis dentro de um espectro especificado por seus parâmetros. Quando um parâmetro é passado, a função retorna um valor que pode variar de zero (não incluso) até o valor do parâmetro. Quando dois parâmetros são utilizados a função retorna um valor aleatório situado entre os dois parâmetros. Os valores retornados são do tipo float e podem ser convertidos para valores inteiros através da função int (valor). random (valor) random (limite inferior, limite superior) // desenha 5 linhas com cordenadas y1 e y2 randomicas smooth(); strokeweight(10); stroke(0, 130); line(0, random(100), 100, random(100)); line(0, random(100), 100, random(100)); line(0, random(100), 100, random(100)); line(0, random(100), 100, random(100)); line(0, random(100), 100, random(100));
64 Processing Randomicidade // repetição de 800 passos // para cada passo a variável r pode valer de 1.0 a 10.0 // a espessura da linha varia randomicamente com r // a variável offset pode assumir valores randomicos entre de 80.0 a size (500,400); background(0); smooth(); stroke(255, 30); for (int i = 0; i < 800; i++) { float r = random(10); //strokeweight(r); float offset = r * 80.0; line(i, 100,0,i+offset); // linhas partem do eixo horiz (y=100) * ver exemplo na pasta ESTRUTURA
65 Processing Transformação O sistema de coordenadas (x,y) visto em exemplos anteriores pode ser transformado por funções de translação, rotação e escalonamento. Desta forma as figuras podem ser desenhadas na janela de display em posição, orientação e tamanhos diferentes. A função translate() move a origem do canto superior esquerdo da tela para outra posição. Ela possui dois parâmetros correspondentes ao deslocamento nos eixos x e y. translate (x,y) // o mesmo retangulo é desenhado, mas apenas o segundo é afetado // pela translação pois é desenhado depois rect (0,5,70,30); translate (10,30); rect (0,5,70,30); // um numero negativo é utilizado como parametro // movendo as coordenadas na direção oposta rect (0,5,70,30); translate (10,-10); rect (0,5,70,30); // efeito aditivo // o ultimo retangulo recebe o acumulo das 2 translações rect(0, 5, 70, 30); translate(10, 30); // desloca 10 pixels para direita e trinta para baixo rect(0, 5, 70, 30); translate(10, 30); // desloca tudo novamente rect(0, 5, 70, 30); // 20 pixels para direita e sessenta pixels para baixo * ver exemplos na pasta TRANSFORMAÇÃO
66 Processing Transformação A ordem na qual as funções de transformação são executadas pode mudar radicalmente o modo como as coordenadas são afetadas. A função rotate() rotaciona o sistema de coordenadas. Assim as formas podem ser desenhadas numa angulação determinada. Existe apenas um parâmetro que determina a quantidade de rotação (ângulo). A função de rotação assume que o parâmetro é especificado em radianos. As figuras são rotacionadas em torno da posição relativa à origem (0,0), e números positivos fazem a rotação no sentido horário. Assim como todas as transformações, o efeito da rotação tambem é cumulativo. rotate (angulo em radianos) smooth(); rect (55,0,30,45); rotate (PI/8); rect (55,0,30,45); // perceba o efeito aditivo da rotação // o retangulo rotaciona em torno do ponto (0,0) no sentido antihorário smooth(); rect(10, 60, 70, 20); rotate(-pi/16); rect(10, 60, 70, 20); rotate(-pi/8); rect(10, 60, 70, 20); * ver exemplos na pasta TRANSFORMAÇÃO
67 Rotação Vamos ver um exemplo sem rotação rect(10, 10, 50, 50); (0, 0)
68 Rotação (0, 0) float angle = radians(45);
69 Rotacionar a tela em 45 graus na origem rotate(angle); (0, 0)
70 Rotação Desenhar outro quadrado, agora relativo a tela rotacionada. (0, 0) rect(10, 10, 50, 50);
71 Rotação Começar com o ponto de rotação translate(35, 35); (0, 0) (35, 35)
72 Rotação Agora desenhar o quadrado com este ponto como seu centro. (0, 0) rect(-25, -25, 50, 50); (35, 35)
73 Rotação Então rotacionamos quando da última vez. (0, 0) float angle = radians(45); rotate(angle); (35, 35)
74 Rotação Agora desenhamos o mesmo quadrado como antes, ele terá o mesmo centro. (0, 0) float angle = radians(45); rotate(angle); (35, 35)
75 Processing Transformação A função scale() aumenta o sistema de coordenadas. Dessa maneira as figuras podem ser desenhadas maiores. A versão com um parâmetro aumenta a figura em todas as dimensões e a versão com dois parâmetros pode auamentar a figura nos eixos x e y separadamente. Os parâmetros da escala são definidos em termos de percentagem. Por exemplo, 2.0 corresponde a 200%, 1.5 para 150%. scale (tamanho) scale (tamanhox,tamanhoy) smooth(); ellipse(32, 32, 30, 30); scale(1.8); ellipse(32, 32, 30, 30); // a espessura do contorno da figura tambem é afetada pela escala // para conservar o contorno proporcional dividimos o parametro de strokeweight() // pelo valor da escala. float s = 1.8; smooth(); ellipse(32, 32, 30, 30); scale(s); strokeweight(1.0 / s); ellipse(32, 32, 30, 30); // efeito aditivo da escala rect(10, 20, 70, 20); scale(1.7); rect(10, 20, 70, 20); scale(1.7); rect(10, 20, 70, 20); * ver exemplos na pasta TRANSFORMAÇÃO
76 Processing Transformação As funções de transformação podem ser combinadas antes de uma figura ser desenhada. Além disso, existe uma função que possiblita o armazenamento do sistema de coordenadas atual ( pushmatrix() ) e uma outra ( popmatrix( )) para a posterior recuperação do estado original do sistema armazenado. A função pushmatrix() não pode ser usada sem popmatrix() e vice e versa. pushmatrix () popmatrix () size (200,200); Fill (0,30); pushmatrix(); // a função pushmatrix inicia um sistema de coordenadas translate (100,100); // translação do sistema para o centro da janela (100,100) rotate (radians(45));// rotaciona o sistema em 45 graus rect (0,0,100,100); // desenha um retangulo no ponto 0,0 deste sistema rectmode(center); // o proximo retangulo a ser desenhado tera seu ponto de registro centralizado rect (0,0,100,100); // o retangulo é desenhado no ponto 0,0 da coordenada popmatrix(); // o sistema tranformado por translate e rotate é retirado da pilha rectmode (CORNER); // o proximo retangulo tera seu ponto de registro no canto superir esquerdo fill (125); rect (0,0,100,100); // o retangulo é desenhado no ponto 0,0 do sistema de coordenadas recuperado * ver exemplo na pasta TRANSFORMAÇÃO
77 Processing Continuidade
78 Processing Continuidade As instruções dos programas vistos até agora são executadas apenas uma única vez. Programas que executam animações ou que respondam às informações em tempo real devem rodar continuamente. No Processing a função draw() é responsável pela execução contínua de blocos de código. Quando a função é finalizada, outro frame é desenhado na janela de display e o bloco de códigos é executado novamente desde a primeira linha. O padrão de execução é de 60 fps (frames-por-segundo). A função framerate () pode contolar a velocidade de frames por segundo e framecount retorna o número de frames mostrados desde o inicio. draw () framerate (fps) framecount é uma variável. float y = 0.0; // inicializa a variável y com o valor 0.0 void draw() { // função draw () responsável pela repetição do código entre { framerate(30); // seta o fps para 30 line(0, y, 100, y); // desenha uma linha horizontal variando valor de y1 e y2 y += 0.5; // incrementa continuamente o valor da variável y // mesmo do exemplo anterior // mas antes de desenhar a linha redesenha também o fundo (background (204)) float y = 0.0; void draw() { framerate(30); background(204); Y += 0.5; line(0, y, 100, y);
79 Processing Continuidade Dentro da execução contínua do código, podemos incrementar variáveis e utilizar seus valores como parâmetros para outras funções. Estruturas decisórias (IF...ELSE) podem examinar e atualizar constantemente o estado destes elementos. float y = 0.0; void draw() { framerate(30); background(y * 2.5); // dentro do bloco a tonalidade do background é modificada = y*2.5 y+=0.5; line(0, y, 100, y); // segue a mesma estrutura do exemplo anterior // após alguns segundos a linha atinge o limite inferior da janela // neste caso, a estrutura IF inicializa o valor da variável (y=0) // desta forma a linha pode ser redesenhada no topo da janela novamente float y = 0.0; void draw() { framerate(30); background(y * 2.5); y+=0.5; line(0, y, 100, y); if (y > 100) { y = 0; * ver exemplos na pasta ESTRUTURA
80 Processing Continuidade Algumas funções devem ser executadas apenas uma única vez. Instruções como determinar o tamanho da janela, por exemplo, podem ser executadas em apenas 1 frame pela função setup(). As variáveis como aquelas que mudam de valor na iteração da função draw() devem ser declaradas fora de setup() ou draw(). A função noloop() interrompe a continuidade de draw() e pode ser usado como uma alternativa para o desenho de um frame apenas. setup() noloop() // dentro da função, a definição da janela, antialias e preenchimento são executados apenas // uma vez // note que a função noloop() tambem é executada, impedindo que draw() repita continuamente // o desenho da elipse // neste caso, framecount retornará o valor 1 (frame) void setup() { size(100, 100); smooth(); fill(0); noloop(); void draw() { ellipse(50, 50, 66, 66); println(framecount); * ver exemplos na pasta ESTRUTURA
81 Processing Continuidade // utilizando texto PFont font; void setup() { size(100, 100); font = loadfont("eureka-48.vlw"); textfont(font); nostroke(); void draw() { fill(204, 24); rect(0, 0, width, height); fill(0); text("flicker", random(-100, 100), random(-20, 120)); * ver exemplos na pasta ESTRUTURA
82 Processing Continuidade Quando setup() e draw() são utilizados, torna-se necessário um planejamento sobre onde declarar variáveis. O local de declaração de uma variável determina seu escopo onde ela pode ser acessada pelo programa. A regra para a determinação do escopo: variáveis declaradas dentro de um bloco só podem ser acessadas dentro do bloco. Variáveis declaradas no mesmo nível que setup() ou draw() podem ser acessada de qualquer local do programa. Variáveis declaradas dentro de setup() ou dentro de draw() só podem ser acessadas dentro das próprias funções. Escopo das variáveis int d = 51; void setup() { size(100, 100); int val = d * 2; fill(val); void draw() { int y = 60; line(0, y, d, y); y -= 25; line(0, y, d, y); // A variável d pode ser acessada de qualquer local // A variável val é local, só pode ser acessada dentro de setup // A variável y é local, só pode ser acessada dentro de draw void draw() { int d = 80; if (d > 50) { int x = 10; line(x, 40, x+d, 40); line(0, 50, d, 50); line(x, 60, x+d, 60); // Essa variável (x) só pode ser usada dentro do bloco IF // ERRO, x é acessada fora do bloco
83 Processing Continuidade Utilizando setup() e draw() rotacionar continuamente um quadrado no intervalo de 5 graus.
84 Processing Continuidade Utilizando setup() e draw() rotacionar continuamente um quadrado no intervalo de 5 graus. Solução float angle = radians(45); void setup() { size(100, 100); rectmode(center); //framerate(10); smooth(); void draw() { background(204); translate(50, 50); angle+=radians(5); rotate(angle); rect(0, 0, 40, 40);
85 Processing Interação: Mouse No Processing as variáveis mousex e mousey armazenam as coordenadas x,y do cursor relativas à origem no canto superior esquerdo da janela de display. A posição do mouse pode ser usada para controlar a localização de elementos visuais. Adicionar ou subtrair valores da posição do mouse gera relações constantes, equanto que multiplicar e dividir esses valores relações visuais mais dinâmicas. mousex mousey //podemos adicionar, subtrair, multiplicar ou dividir os valores correspondentes // a mousex e mousey para obter tipos diferentes de comportamentos dos objetos visuais // retire as barras de comentário (//) para verificar cada comportamento void setup() { size(100, 100); smooth(); nostroke(); void draw() { background(126); //ellipse(mousex, mousey, 33, 33); // segue a posição do mouse //ellipse(mousex, 16, 33, 33); //ellipse(mousex+20, 50, 33, 33); //ellipse(mousex-20, 84, 33, 33); //ellipse(mousex, 16, 33, 33); //ellipse(mousex/2, 50, 33, 33); //ellipse(mousex*2, 84, 33, 33); * ver exemplos na pasta INTERAÇÃO
86 Processing Interação: Mouse Para inverter o valor do mouse, simplesmente subtraia o valor de mousex da largura (width) da janela e subtraia o valor de mousey da altura (height). void setup() { size(100, 100); nostroke(); smooth(); void draw() { float x = mousex; float y = mousey; float ix = width - mousex; float iy = mousey - height; background(126); fill(255, 150); ellipse(x, height/2, y, y); fill(0, 159); ellipse(ix, height/2, iy, iy); // ix=inverte o valor de x // iy=inverte o valor de y // posicao, altura e largura variam proporcionalmente // posição, altura e largura variam inversamente * ver exemplos na pasta INTERAÇÃO
87 Processing Interação: Mouse As variáveis pmousex e pmousey guardam os valores do mouse do frame anterior. Se o mouse não se mover, os valores continuam o mesmo, mas se o mouse estiver se movendo rapidamente estes valores devem sofrer grandes variações. pmousex pmousey // desenha uma linha entre a posição atual do mouse e a posição prévia void setup() { size(100, 100); strokeweight(8); smooth(); void draw() { background(204); line(mousex, mousey, pmousex, pmousey); * ver exemplos na pasta INTERAÇÃO
88 Processing Interação: Mouse O estado de um botão e a posição do mouse juntos permitem a realização de várias ações. A variável mousepressed é verdadeira (true) se algum botão é pressionado e falso (false) se nenhum botão é pressionado. A variável mousebutton é LEFT, CENTER ou RIGHT dependendo do botão pressionado. A variável mousepressed É revertida para false logo que o botão é solto, mas a variável mousebutton retem o seu valor até que um botão diferente for pressionado. mousepressed mousebutton // seta o preenchimento do quadrado para preto quando o botão esquerdo for pressionado // e para branco quando o botão direito for pressionado void setup() { size(100, 100); void draw() { if (mousebutton == LEFT) { fill(0); // preto else if (mousebutton == RIGHT) { fill(255); // branco else { fill(126); // cinza rect(25, 25, 50, 50); * ver exemplo na pasta INTERAÇÃO
89 Processing Interação: Mouse // desenha linhas com diferentes valores de cinza quando o botão do mouse é pressionado ou não void setup() { size(100, 100); void draw() { if (mousepressed == true) { // Se o mouse é pressionado stroke(255); // seta o contorno para branco else { // senão stroke(0); // seta o controle para preto line(mousex, mousey, pmousex, pmousey); * ver exemplo na pasta INTERAÇÃO
90 Processing Interação: Mouse Com a estrutura FOR podemos criar desenhos mais complexos com apenas algumas linhas de código. void setup() { size(100, 100); void draw() { for (int i = -14; i <= 14; i += 2) { point(mousex+i, mousey); * ver exemplo na pasta INTERAÇÃO void setup() { size(100, 100); nostroke(); fill(255, 40); background(0); void draw() { if (mousepressed == true) {// mudança de cor quando o mouse é pressionado fill(247,10,10, 26); else { fill(216,94,94,26); // 6 elipses são desenhadas //são posicionadas na mesma posição do mouse //mas variam na posição x, largura e altura for (int i = 0; i < 6; i++) { ellipse(mousex + i*i, mousey, i, i);
91 Processing Interação: Mouse Imagens também podem ser usadas como ferramentas de desenho. Se a imagem é posicionada em relação ao cursor emcada frame, seus pixels podem ser usados para criar composições complexas. // desenhando com imagem transparente PImage alphaimg; void setup() { size(100, 100); // esta imagem é parcialmente transparente alphaimg = loadimage("alphaarch.png"); void draw() { int ix = mousex - alphaimg.width/2; //a imagem é centralizada de acordo com mouse int iy = mousey - alphaimg.height/2; image(alphaimg, ix, iy); // * ver exemplo na pasta INTERAÇÃO
92 Processing Movimento int direction = 1; void setup() { size(100, 100); smooth(); nostroke(); ellipsemode(radius); void draw() { fill(0, 12); rect(0, 0, width, height); fill(255); ellipse(33, y, radius, radius); y += speed * direction; if ((y > height-radius) (y < radius)) { direction = -direction;
93 Processing Movimento float y = 50.0; float speed = 1.0; float radius = 15.0; void setup() { size(100, 100); smooth(); nostroke(); ellipsemode(radius); void draw() { fill(0, 12); rect(0, 0, width, height); fill(255); pushmatrix(); translate(0, y); // afetado pelo primeiro translate() ellipse(33, 0, radius, radius); translate(0, y); // afetado pelo primeiro e segundo translate() ellipse(66, 0, radius, radius); popmatrix(); // nenhum translate() ellipse(99, 50, radius, radius); y = y + speed; if (y > height + radius) { y = -radius;
94 Processing Movimento float angle = 0.0; void setup() { size(100, 100); smooth(); nostroke(); void draw() { fill(0, 12); rect(0, 0, width, height); fill(255); angle = angle ; translate(70, 40); rotate(angle); rect(-30, -30, 60, 60);
PCS TEXNUM: Texto e Números em Ponto Flutuante
PCS 2190 - TEXNUM: Texto e Números em Ponto Flutuante Ricardo Nakamura e Romero Tori 2015 1 Introdução Nesta aula vamos ver como utilizar textos e números reais em um programa e como desenhar textos no
PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected]
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
Variáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA CAMPUS CAMPINA GRANDE 1 2 Elementos Básicos Tipos de dados Dados e seus tipos: Computadores lidam com diversos tipos de dados: numéricos,
Introdução à Linguagem C++
Introdução à Linguagem C++ C++: Definição C++ C A Linguagem de Programação C++ pode ser definida como uma extensão da Linguagem C; Todo código de programação em Linguagem C pode a priori ser compilado
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos
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
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
Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI
Introdução à Programação em C Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Linguagem C Criada em 1972 para uso no LINUX; Sintaxe base para diversas outras (Java, JavaScript, PHP, C++,
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
Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de
LINGUAGEM C: VARIÁVEIS E EXPRESSÕES
LINGUAGEM C: VARIÁVEIS E EXPRESSÕES Prof. André Backes LINGUAGENS DE PROGRAMAÇÃO Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador deve
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: [email protected] Blog: http://profperini.com Formação
TÉCNICO DE INFORMÁTICA - SISTEMAS
782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar
Noções de algoritmos - Aula 1
Noções de algoritmos - Aula 1 Departamento de Física UFPel Definição de algoritmo Sequência ordenada e finita de operações para a realização de uma tarefa. Tarefa: Experimento de Física I. Passo 1: Reunir
Programação de Computadores III
Programação de Computadores III Introdução ao FORTRAN Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157
3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas
Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi
Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador
Programação de Computadores III
Programação de Computadores III Introdução ao FORTRAN Professor Hugo de Oliveira Barbalho [email protected] Material produzido pelo professor: Leandro Augusto Frata Fernandes ([email protected])
Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 03 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.br/~brunogomes Agenda da Aula Representação de Algoritmos em Pseudocódigo: Tipos de Dados;
Algoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes [email protected] 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Programação de Computadores:
Instituto de C Programação de Computadores: Introdução ao FORTRAN Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Introdução ao FORTRAN Cinco aspectos
Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa
Computação Eletrônica Tipos de dados, constantes, variáveis, operadores e expressões Prof: Luciano Barbosa Site da disciplina: www.cin.ufpe.br/~if165/ Recapitulando num cubo = n * n * n cubo Algoritmo
PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S
PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é
Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4
Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para
ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior
ALGORITMOS E APLICAÇÕES FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior Formato Básico do Pseudocódigo Tipos de dados O VisuAlg prevê quatro tipos de dados: inteiro, real,
PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA
PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA SUMÁRIO Introdução Conceitos básicos Formato básico Tipos primitivos Variáveis Constantes Operadores Operações
Ambiente de programação
EXPLORANDO O O que é o SCRATCH? O software Scratch é um ambiente para a criação de jogos, histórias e animações, usando raciocínio lógico. A partir desta ferramenta é possível exercitar conceitos de lógica
Revisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
Técnicas de Programação
Técnicas de Programação Algoritmos Anderson Gomes Eleutério Lógica A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir
PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia
PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia Calculo da área de um triângulo Algoritmo Área Var base,
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
Aula 01 Microsoft Excel 2016
Aula 01 Microsoft Excel 2016 Prof. Claudio Benossi Prof. Rodrigo Achar Prof. Wagner Tufano São Paulo SP 2018 1 01 Informações sobre a interface Aprender a trabalhar com o Excel pode ser o divisor de águas
Processing - Imagem 1. Processing. Imagem (PImage) Jorge Cardoso
Processing - Imagem 1 Processing Imagem (PImage) Processing - Imagem 2 Classe PImage Imagem Utilizada para guardar e manipular imagens em memória Processing - Imagem 3 Ficheiros de Imagem Os ficheiros
Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.
Variáveis e Entrada de Dados Marco André Lopes Mendes [email protected] [email protected] marcoandre.googlepages.com Algoritmos é a base Primeiro programa Este programa possui apenas uma
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
Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: estruturas de repetição While / Do While / For Prof. Renato Pimentel 1 Estruturas de repetição O real poder dos computadores está
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
SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB
Aula 01 Introdução ao software MATLAB O MATLAB (Matrix Laboratory) é um ambiente de programação de alto desempenho voltado para a resolução de problemas expressos em notação matemática, projeto e simulação
Introdução aos Algoritmos
Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa [email protected] Universidade Federal Rural do Semiárido Bacharelado
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:
Linguagem Java. Introdução. Rosemary Silveira Filgueiras Melo
Linguagem Java Introdução Rosemary Silveira Filgueiras Melo [email protected] 1 Tópicos abordados Histórico da Linguagem Caracterização da Linguagem Criação de Programa Java inicial Entrada e Saída
Noções de algoritmos - Aula 1
Noções de algoritmos - Aula 1 Departamento de Física UFPel Definição de algoritmo Sequência ordenada e finita de operações para a realização de uma tarefa. Tarefa: Experimento de Física I. Passo 1: Reunir
Disciplina: Introdução a Programação. IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer. Índice: Aula1 - Introdução Programa Algoritmo
Disciplina: Introdução a Programação. IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer Índice: Aula1 - Introdução Programa Algoritmo Aula 2 - Variáveis Tipos de dados Identificadores Aula 3 - Programação
Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius
4. Constantes. Constantes pré-definidas
4. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações.
Programação Básica em Arduino Aula 2
Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Site: http://oficinaderobotica.ufsc.br/ Canal: Oficina de Robótica UFSC https://www.youtube.com/channel/uc4oojsp2fhfkdrnj0wd7iag
Introdução aos Algoritmos
Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa [email protected] Universidade Federal Rural do Semiárido Bacharelado
Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin
Introdução a Programação Curso: Sistemas de Informação Programação I José R. Merlin Programas Programas são instruções para o computador executar uma tarefa Estas instruções seguem uma lógica Lógica: modo
Prof. A. G. Silva. 28 de agosto de Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de / 1
INE5603 Introdução à POO Prof. A. G. Silva 28 de agosto de 2017 Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de 2017 1 / 1 Comandos de decisão simples e compostas Objetivos: Utilização de controles
- Aula 01, 02, 03 e 04 Apresentação da disciplina.
1 - Aula 01, 02, 03 e 04 Apresentação da disciplina. Disciplina: Algoritmos (Disciplina é pré-requisito para outras disciplinas). Plano de Ensino: Estrutura Sequencial, Estrutura de Decisão (Desvio Condicional
Ambiente de desenvolvimento
Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa
Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java
Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre
Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios
Microprocessadores I ELE 1078 Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Grupos de Instruções do 8085 As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da
Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias
SCC 12 - Introdução à Programação para Engenharias Tipos de Dados e Variáveis Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes
Fluxogramas e variáveis
Fluxogramas e variáveis Patrícia de Siqueira Ramos UNIFAL-MG, campus Varginha 11 de Março de 2019 Patrícia de Siqueira Ramos Fundamentos da programação 1 / 20 Fases de um algoritmo Patrícia de Siqueira
LINGUAGEM C: COMANDOS DE REPETIÇÃO
LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições
C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P
C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P SINTAXE BÁSICA Neste capítulo vamos apresentar a estrutura básica do PHP. Para iniciar a construção de um
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
Conceitos Básicos Linguagem C
Conceitos Básicos Linguagem C PROF. MAURÍCIO A DIAS [email protected] 2 Método Método básico para construção de algoritmos 1. Compreender completamente o problema a ser resolvido, se possível dividindo
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
Algoritmos I Aula 13 Linguagem de Programação Java
Algoritmos I Aula 13 Linguagem de Programação Java Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação IDE Eclipse IDE (Integrated development environment) Criar um projeto
Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica
Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Programação de Computadores I BCC701 www.decom.ufop.br/moodle Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada
Algoritmos e Programação
Algoritmos e Programação Aula 2 Elementos fundamentais de Algoritmos, Conceitos de Variáveis Profa. Marina Gomes [email protected] 21/03/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 www.decom.ufop.br/red AULA TEÓRICA 02 1 Prof. Marcelo Luiz Silva Red CONTEÚDOS DA AULA
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
Material Didático Unificado.
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material
Programação Estruturada Aula VisualG
Programação Estruturada Aula VisualG Prof. Flávio Barros [email protected] www.flaviobarros.com.br 2 CRIANDO ALGORITMO CRIANDO ALGORITMO Passos para construir Algoritmos Ler enunciado do problema, compreendendo-o
Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema
ALGORITMIA Resolução De Problemas Em Informática Docente: Ana Paula Afonso 2000-2001 Resolução de Problemas 1. Analisar o problema Conhecer o bem o problema Descrever o problema: subdividir, detalhar 2.
Análise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
Sistemas Operacionais e Introdução à Programação. Programação com linguagem C
Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro
Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática
Capítulo 1: Introdução à Linguagem C Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso caso, a linguagem C.
CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1
CIT 2015.2 Aula 02 Variáveis e Estruturas de desvio condicional Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1 Variáveis Uma variável nada mais é que um nome que damos a uma determinada posição
Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados
Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Disciplina de Programação de Computadores I Universidade Federal de Ouro
Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida
Programação Orientada a Objetos II Java Segunda aula 1 Programação Orientada a Objeto II Tipos de Dados e Variáveis Operadores Operadores aritméticos Operadores relacionais Operadores lógicos Operadores
TIPOS DE DADOS E VARIÁVEIS
AULA 3 TIPOS DE DADOS E VARIÁVEIS 3.1 Tipos de dados Os dados manipulados por um algoritmo podem possuir natureza distinta, isto é, podem ser números, letras, frases, etc. Dependendo da natureza de um
Aula 03 - Introdução ao Scilab (p2)
BCC701- Programação de Computadores I Aula 03 - Introdução ao Scilab (p2) Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 BCC701-2019-01 DECOM
LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior
LÓGICA DE PROGRAMAÇÃO Algoritmos Computacionais Sérgio Carlos Portari Júnior [email protected] Tópicos abordados Algoritmos Computacionais Estrutura de Dados Tipos Primitivos Constantes Variáveis
Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos
+ Introdução a JAVA Variáveis, tipos, expressões, comandos e blocos +Roteiro 2 Variáveis e tipos Operadores aritméticos, lógicos, relacionais e bit-a-bit Atribuição Comandos básicos Ler, Escrever, Condicional,
#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C
#include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que
Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos
Introdução a JAVA Variaveis, tipos, expressões, comandos e blocos Roteiro Variáveis e tipos Operadores aritméticos, lógicos, relacionais e bit-a-bit Atribuição Comandos básicos Ler, Escrever, Condicional,
Programação Procedimental
Programação Procedimental Maria Adriana Vidigal de Lima Universidade Federal de Uberlândia - 2013 1 Escrita de Algoritmos 1.1 Técnicas de Programação e Algoritmos Na elaboração de programas maiores e complexos
Capítulo 2 Operadores. A função scanf()
Capítulo 2 Operadores A função scanf() A função scanf() é outra das funções de E/S implementadas em todos os compiladores e nos permite ler dados formatados da entrada padrão (teclado). Sintaxe: scanf(
Lição 4 Fundamentos da programação
Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças
Linguagem e Ambiente Scratch. Introdução à Laboratório Prof.Alfredo Parteli Gomes
Linguagem e Ambiente Scratch Introdução à Laboratório Prof.Alfredo Parteli Gomes Scratch Linguagem de programação que visa facilitar a criação de histórias interativas, jogos e animações Informações e
