- Univ. Pennsylvania - Centre for Human modelling and Simulation
- Swiss Federal Institute of technology -Computer Graphics Lab
- Univ. Toronto- Dynamic Graphics Project.
- Univ. Georgia - Graphics, Visualisation and Usability Center
- New York Univ. -IMPROV project
- Univ. California- Inst. Creative Technologies
- Univ. Manchester- Manchester Visualization Centre
- Univ. Geneve- MIRALab
- Univ. Caenegie-Melon-Oz project
- Iniv. Calif. Santa Cruz- Perceptual Science Lab
- Microsoft Research. C. Persona Project
- MIT Media LAb. -
Synthetic Characters Group
- Uni. Stanford - Virtual Theatre proj.
Notas turma 2015/2
Trabalhos 2015:
Primeiro Trabalho
Entrega em papel em 10/12/2015:
Faça um algoritmo, usando fluxograma e pseudo codigo, que tendo como entrada o total vendido por um funcionário no mês, mostre sua comissão e o seu salário bruto neste mês. Sendo que o seu salário base é R$1.200,00 e sua comissão é de 10% sobre o total vendido por ele.
Inicie o programa perguntando o nome do funcionario , o mes e qual o valor total de suas vendas no mes.
Segundo Trabalho :
Entrega: 22/12/2015
Peça 4 números inteiros de entrada, N1, N2, N3 e N4, escreva na tela qual é a maior soma possÃvel de dois desses 4 números.
E.g.: Se N1 = 2, N2 = 4, N3 = 1 e N4 = 10, a maior soma de dois elementos é 14, ou seja, N2 + N4.
Mandem ele (código e executável renomeando o .exe para .trab2 ) por e-mail para o "erickr@id.uff.br". No subject da e-mail - incluir PROG V - TRAB 2
Terceiro Trabalho :
Entrega: 12/01/2016
Você deve usar neste trabalho pelo menos uma vez cada uma das 4 estruturas de controle de fluxo vistas até aqui (if, if else, for, switch). No inicio apresente um texto explicando que dependendo da letra teclada ser A/a, D/d, E/e, G/g, M/m, ou P/p , 6 opções de funções serão executadas pelo programa. Apresente um aviso de erro caso nenhuma destas letras tenha sido escolhida. Escolher A/a corresponde a ser calculado e mostrado na tela a área de um circulo e será pedido para o usuário ÂTeclar o raio do mesmo. Escolher P/p corresponde a ser mostrado o perÃmetro de um circulo e será pedido para o usuário Âteclar o raio do mesmo. Escolher M/m corresponde a ser mostrado o maior entre 4 números Âteclados pelo usuário. Escolher G/g gera e mostra ao usuário o número google. Escolher E/e calcula o quadrado da distância Euclidiana entre 2 pontos do plano, e é pedido que o usuário forneca as coordenadas horizontais e verticais da cada um destes 2 pontos . Escolher D/d mostra a distância ao quadrado entre 2 pontos do plano na forma especial de distância descrita no modulo 3.
Mande o código e o executável (renomeando este .exe para .trab3) por e-mail para o "erickr@id.uff.br". No subject da e-mail - incluir PROG V - TRAB 3. Programas iguais ou partes de códigos iguais recebem nota "zero" em todo esse trabalho !
Quarto Trabalho :
Entrega: 22/01/2016
Faça o fluxograma de um programa que dependendo do usuário escolher M ou S, mostre na tela uma área com uma Matriz ou uma Seqüência de números.
No caso do usuário escolher M, ou seja, no caso da Matriz, essa será calculada pelo preenchimento dos elementos de um array de 8 linhas e 8 colunas (8x8), com valores relacionados às posições (x , y) deste elemento dada pela expressão: (xr + yr ) 1/r, Onde r é a ordem do seu nome na lista de chamada da turma.
No caso do usuário escolher S, ou seja, no caso da Seqüência, usando recursividade de funções, crie uma função no seu programa que imprime os elementos de ordem n=40 a 50 de uma seqüência de Lucas U(n): (como explicado no módulo 6), definida como:
U(0) = 0
U(1) = 1
U(n+2) = P U(n+1) - Q U(n)
onde P e Q são constantes definidas em função de seu número na lista de chamada, de forma que P é a soma dos dois dÃgitos que compõem seu número e Q é a diferença do primeiro dÃgito pelo segundo, desde que eles não sejam iguais. Caso sejam iguais então Q=1. Depois de definir sua seqüência deve arrumar uma função que se auto chamando nas versões n e n+1, imprima os valores de U(40), U(41) ......U(50).
Depois de feito o fluxograma e testado, ( mostre como o testou), faça o código em C e rode o programa. Entregue fluxograma, código e executável, até 22/01 (sexta mesmo!).
Baseie-se no exemplo do calculo do Fatorial do modulo 6. Você pode encontrar pelo internet também algumas soluções para o caso da seqüência de Fibonacci, que pode seguir como dica.
O modulo 7, explica em mais detalhes o trabalho.
Quinto Trabalho
Entrega:05 / 02 /2016
Faça um programa que pergunte a data de nascimento de uma pessoa. Defina ou obtenha a data atual como você quiser (e.g., quando escrever o código, assuma que uma função anoAtual() retorna o ano e outra função mesAtual() retorna o mês)! Depois calcule a idade da pessoa, em relação à data de hoje. E se ela tiver menos de 2 anos escreva Âvocê é um bebê!Â. Se ela tiver entre 2 e 13 anos escreva a mensagem na tela: ÂVocê é uma criança!Â. Se ela tiver de 13 a 19 anos escreva a mensagem na tela: ÂVocê é um adolescenteÂ. Se ela tiver de 20 a 65 anos escreva na tela: ÂVocê é um adultoÂ. Caso ela tenha mais de 65 anos escreva na tela: ÂVocê está podendo estacionar em vagas definidas para a terceira idade!Â.
Não precisa testar na idade até os dias, mas não deixe de considerar os meses.
Depois, refaça o seu código anterior usando vetores com 4 posições para tratar as datas. Ou seja, considere que em uma dada posição você armazena o dia de hoje e o dia de nascimento da pessoa; em uma outra posição você armazena o mês atual e o mês de nascimento da pessoa. Em uma terceira posição do vetor, você deve armazenar o ano atual e o de nascimento da pessoa. Finalmente em uma quarta posição deste vetor, você armazenará o calculo da idade da pessoa. O restante do programa tem a mesma forma anterior.
Refaça mais uma vez o seu código usando agora uma função para calcular a diferença entre as datas atuais e de nascimento da pessoa. O restante do programa tem a mesma forma anterior.
Entregue além do codigo em C os seus executáveis
por e-mail para o "erickr@id.uff.br". No subject da e-mail por "PROG V - TRAB 5"
Sexto Trabalho :
Entrega: 19 / 02 /2016
Escreva um programa que gere um arquivo que contenha uma matriz de 8 colunas por N linhas. Cada elemento desta matriz deve conter o sÃmbolo de Âspace (o de código numero 32) da tabela AISCII ou a primeira letra do seu nome em Maiúsculas. Esses sÃmbolos devem ser dispostos de modo a que você escreva nesta matriz um dos seus sobrenomes, na forma de uma letra sobre a outra. Cada letra com mesma altura. Por exemplo, você pode decidir que vai escolher para altura ter cada letra com 12 linhas. Entre uma letra e outra deve haver uma linha inteira com apenas espaços (ou com o código de numero 32 da tabela AISCII, aparecendo na linha inteira). Escolha também um dos seus sobrenomes que não tenha outro na sala. Por exemplo, não escolha o ÂOliveiraÂ, o ÂSilva ou o ÂSantosÂ, pois há mais de um aluno com esses sobrenomes. Explicando melhor, se você fosse sua professora, deveria gerar algo como a matriz abaixo:
Setimo Trabalho :
Entrega: 4 / 03 /2016
Escreva um programa que gere algumas funções para um sistema maior de um "Programa controlador de estoques e promoções" de um supermercado, com os seguintes requisitos:
1)Mostre na tela as instruções de funcionamento do programa.
2)Todos os produtos devem ter um código que deve ser um número inteiro, mas representado por enumeração ou (enumerações) , como descrito no item 1, do Modulo 11 e explicado em sala de aula.
3)Cada produto do supermercado deve estar associado a pelo menos uma estrutura com pelo menos 12 elementos, como descrito no Modulo 11 e explicado em sala de aula.
4)Deve haver pelo menos um array da estrutura dos produtos comentada ( em 3 do Modulo 11 e explicado em sala de aula) com tantos elementos quanto os itens vendidos no supermercado ou que estejam em seu estoque.
5)Deve haver pelo menos uma função que calcula a validade de "Frutas e Legumes" como sendo de 6 dias a partir da data de compra (de novo para mais explicações e detalhes veja o Modulo 11) .
6)Deve ter pelo menos uma função de calcula o preço dos produtos em função da sua validade.
7)Deve haver uma função de controle de estoque que avisa quando o estoque de um produto for menor do que 10% do comprado, veja o Modulo 11 e lembre do que foi explicado em sala de aula.
Entregue além do codigo em C o seu executável
por e-mail para o "erickr@id.uff.br". No subject da e-mail por "PROG V - TRAB 7"
Oitavo Trabalho :
Entrega: 18 / 3 /2016
Escreva outras duas versões do 7º Trabalho :
uma onde seja usada malloc() e free() , e
outra com calloc() e free() , para um vetor que tenha em cada elemento a estrutura Âprodutos_supermercado e cujo número de elementos seja definido pelo usuário apenas em tempo de execução.
Entregue além do codigo em C os seus executáveis
por e-mail para o "erickr@id.uff.br". No subject da e-mail por "PROG V - TRAB 8"
Nono Trabalho :
Entrega: 22 / 03 / 2016
Escreva o código em C de um programa que :
Pergunte a uma pessoa um ano e um mês (deste ano), sendo o mês dado por um número. Depois escreva 3 funções a serem incluidas no programa: A função Verifica_Bissexto, afunção DiasMes, e a MensagemAoUsuario. Elas devem ser executadas por este programa caso alguma opção, de acordo com um aviso na tela, seja escolhida pelo usuário.
A função Verifica_Bissexto deve ser desenvolvida de modo a que se verifique se o ano teclado pelo usuário é um ano bissexto (i.e. tem 29 dias em Fevereiro, o que ocorre a cada 4 anos, ou seja, o ano terá 0 como resto da divisão por 4. Sugestão: use a operação modulo para verificar isso) .
A função DiasMes , compara o mês teclado com uma lista de meses com 30 dias (isto é os meses de números 4,6,9,11), e retorna o número de dias que tem o mês que a pessoa digitou.
A função MensagemAoUsuario escreve uma mensagem de um dos dois tipos: Âo Ano que você teclou é bissexto e o mês teclado tem DM dias ou Âo mês que você teclou tem DM dias , onde DM é o número de dias do mês, ou o retorno da função DiasMes.
Não esqueça de incluir outros detalhes relevantes para que seu programa possa ser compilado e executado adequadamente . Veja: modulo 13 acima.
Entregue além do codigo em C os seus executáveis
por e-mail para o "erickr@id.uff.br". No subject da e-mail por "PROG V - TRAB 9"
Decimo Trabalho :
Entrega: 22 / 03 / 2016
Implemente um programa que converte Âas primeiras letras de um texto em letras minúsculas para MAIÃSCULAS de forma inteligenteÂ, i.e. sem fazer isso com artigos, preposições e suas contrações.
Esse programa deve fazer isso através de diversas funções (pelo menos 6) que você vai implementar, conforme vamos descrever a seguir.
Assim deve ter , no seu programa pelo menos uma função que vai:
1- Usar o código AISC de um texto escrito pelo usuário na tela. Esse texto deve ser transformado em um vetor de caracteres. Você pode fixar a vontade o tamanho máximo deste vetor.
2- Verificar se todas as letras digitadas são mesmo minúsculas pelo seus números na tabela AISC (estudada em módulo anterior http://www2.ic.uff.br/~aconci/PC.html) . Se não forem, primeiro deve converter tudo para minúsculas.
3- Depois deve ter outra função para localizar todas as partes da string onde há espaço em branco. Ou seja inicio de uma outra palavra.
4- As partes de novas palavras deve ser comparadas com uma lista de palavras que não serão convertidas. Essas devem ser pelo menos:
artigos: o,a,os,as
as preposições: em, de
e suas contrações: no, na, nos, nas, do, da,dos, das.
Se uma destas palavras for encontrada a próxima função não será chamada. Caso contrario converte-se o trecho para maiúsculas. Esse item deve ser pelo menos uma função do seu programa.
5- A função principal de converter minúsculas para MAIÃSCULAS deve usar a diferença entre as posições do texto na Tabela AISCC , que é fixa. Ou seja adicionar ou subtrair essa constante do trecho a ser convertido.
6- Deve ter pelo menos uma função que mostra o texto final na tela (unido novamente as partes entre espaços) .
7- O programa deve iniciar com um aviso ao usuário de Âpara que ele serve e como deve ser usadoÂ.Deve também chamar as funções a serem implementadas em ordem adequada. Mais detalhes veja o modulo 13 acima .
voltar inicio
dados do professor
voltar linhas de pesquisa