segunda-feira, 9 de agosto de 2010

Exercícios POO

Exercícios

---------------------------------------
Descrição geral: Desenvolver um software para gerenciamento de uma Universidade.

1. Criar as seguintes classes:
Pessoa
Estudante
Professor
Classe

2. Criar atributos, comportamentos e relacionamentos para as classes.
3. Fazer uma classe principal para receber as entradas de dados e apresentar a saída.
4. Na classe principal, adicione um comportamento para receber as notas, calcular a média e escrever na tela se o estudante está aprovado ou reprovado.

---------------------------------------

Descrição geral: Desenvolver um software para gerenciamento de contas bancárias


1. Criar as seguintes classes:
Pessoa física
Pessoa Jurídica
Conta corrente
Poupança

2. Criar atributos, comportamentos e relacionamentos para as classes.
3. Fazer uma classe principal para receber as entradas de dados e apresentar a saída.
4. Na classe principal, adicione um comportamento para impedir saques de Contas Correntes e Poupanças, abaixo do limite.

---------------------------------------
 
Descrição geral: Desenvolver um software para gerenciamento de uma Loja de computadores.


1. Criar as seguintes classes:
Pessoa
Comprador
Vendedor
Produto

2. Criar atributos, comportamentos e relacionamentos para as classes.
3. Fazer uma classe principal para receber as entradas de dados e apresentar a saída.

Programação Orientada a Objetos

http://www.guiadohardware.net/artigos/programacao-orientada-objetos/

sábado, 5 de junho de 2010

Os padrões de projeto do SCWCD

Um dos tópicos mais interessantes do estudo para o SCWCD são os padrões de projetos. Para o exame, são cobrados conhecimentos nos seguintes padrões:
  • Model-View-Controller: padrão de facto, é possívelmente o mais  em aplicações Web. Ele define que uma aplicação deve ser dividida em lógica de negócios (Model), apresentação ao usuário (View) e a interação entre essas duas camadas (Controller).
  • Intercepting Filter: define um elemento intermediário entre o navegador e o Servlet, sem que esses saibam da sua existência. 
  • Front Controller: define um único componente (Servlet ou JSP) para controle da camada de visão.
  • Service Locator: lidam com o serviço de buscas, particularmente interessante para JNDI e o uso do padrão Business Delegate, evitando a repetição de código.
  • Business Delegate: refere-se à criação de uma classe intermediária que irá encapsular a lógica de acesso à camada de negócios, mesmo que a mesma seja remota.
  • Transfer Object: utilizado quando há a necessidade de que as propriedades de um objeto sejam transmitidas em conjunto, evitando que partes da informação estejam desatualizadas em relação à outras. Nesse caso, o objeto dos é transmitido (serealizado/deserealizado)
Existem vários outros padrões de projetos, tão ou mais importantes quanto esses, porém sendo bastante pragmático: esses são suficientes para passar no exame. :)

terça-feira, 25 de maio de 2010

10 Sinais que seu projeto está vindo abaixo


Achei muito interessante (cômico, se não fosse trágico) esse texto (http://www.codeanthem.com/blog/2010/05/signs-your-software-project-is-going-down/) sobre projetos de software. Por isso, fiz uma tradução livre do mesmo:
Como você sabe se seu projeto de software está indo por água abaixo?
  1. O desenvolvimento começou com cascata e, em seguida, assim que entrou em queda livre, a equipe começou a chamá-lo "qualquer coisa" ágil. Isso também é conhecido como ágil falso, ou "frÁGIL".
  2. Corrigir um bug sempre expõe outros bugs. O software está tão bugado que você não pode sequer chegar a certas partes sem esbarrar num problema. Não é tão ruim quanto causar seus próprios bugs, mesmo assim não é bom.
  3. Uma ou mais das tecnologias centrais deixou de ser suportada pelo fabricante antes mesmo do projeto começar. Melhor ainda se a linha de tecnologia foi totalmente interrompida.
  4. Você está utilizando PowerBuilder ou qualquer outra "ferramenta de desenvolvimento rápido" na qual o código tenha sido abstraía em checkboxes e drop downs. Bibliotecas, ferramentas e APIs são ótimas, mas estas ferramentas são como jogar Twister com o código.
  5. O líder tecnológico não sabe usar corretamente o e-mail ou navegador. Como alguém que não consegue nem mesmo usar o básico de software, pode conduzir adequadamente uma equipe de programadores?
  6. O Gerente de Projeto está escrevendo código e um desenvolvedor está gerenciando a equipe. Tenho visto isso com mais freqüência do que eu gostaria de admitir.
  7. Há mais pessoas de negócios ou de domínio do que na equipe de técnica. 1 programador + alta rotatividade + código grande + sistema crítico + enorme lista de bugs = sem problema?
  8. Há um conjunto de testes de um programador anterior, mas metade deles estão falhando ou não compilam. Para um divertimento extra, verifique se os erros relatados teriam sido evitados se o conjunto de testes fossem utilizados.
  9. Adicionar uma única linha de código requer várias linhas de comentário. Um comentário na linha indicando o motivo e o seu nome. Um comentário no topo do arquivo colocando o seu nome e data de atualização. Um por comit de arquivo, com a mensagem descritiva. Atualização no software de bug-tracking/PM. Etc, etc
  10. A frase "não é um bug, é uma característica" se aplica a maioria das características "do produto. "O sistema não foi projetado para isso"

domingo, 23 de maio de 2010

Você sabe o que é loop?

Para quem não conhece o conceito de "Loop", trata-se de uma terminologia assim nomeada por estudiosos de informática para definir uma confusão criada e que não possui uma explicação concreta para solução do problema...

Diz-se que um programa de computação "entrou em Loop" quando acontece a seguinte situação:

O diretor chama sua secretária e diz:

- Senhorita Vanessa: Tenho um seminário na Argentina por uma semana e quero que você me acompanhe. Por favor, faça os preparativos da viagem...

A secretária liga para seu marido:

- Alô, João! Vou viajar para o exterior com o diretor por uma semana. Cuide-se meu querido!

O marido liga para sua amante:

- Eleonor, meu amor. A bruxa vai viajar para o exterior por uma semana, vamos passar esta semana juntos, minha princesa ...

No momento seguinte, a amante liga para o menino para quem dá aulas particulares:

- Joãozinho, estou com muito trabalho esta semana e não vou poder te dar aulas ....

A criança liga para seu avô:

- Vovô, esta semana não terei aulas, minha professora estará muito ocupada. Vamos passar a semana juntos?

O avô (que é o diretor desta história) chama imediatamente a secretária:

Senhorita Vanessa venha rápido - Suspenda a viagem, vou passar a semana com meu netinho que não vejo há um ano, por isso não vamos participar mais do seminário. Cancele a viagem e o hotel.

A secretária liga para seu marido:

- Ai amorzinho! O babaca do diretor mudou de idéia e acabou de cancelar a viagem.

O marido liga para sua amante:

- Amorzinho, desculpe! Não podemos mais passar a semana juntinhos! A viagem da mocréia da minha mulher foi cancelada.

A amante liga para o menino a quem dá aulas particulares:

- Joãozinho, mudei os planos: esta semana teremos aulas como de costume.

A criança liga para o avô:



- Puta merda vovô! A véia da minha professora me disse que terei aulas. Desculpe mas não poderemos ficar juntos esta semana.

Seu avô liga para a secretária:

- Senhorita Vanessa , meu neto acabou de me ligar e dizer que não vai poder ficar comigo essa semana, porque ele terá aulas. Portanto dê prosseguimento à viagem para o Seminário.
Justificar
Entendeu agora o que é um "Loop"?


quinta-feira, 11 de março de 2010

Google Code Jam

Saiu as datas para o Google Code Jam:

http://code.google.com/codejam/

O registro começa dia 7 de abril!

Com certeza vou participar!

sexta-feira, 19 de fevereiro de 2010

Jogo da vida do matemático John Conway

Pessoal,

um dos problemas de programação "mais" clássicos é o Jogo da Vida, proposto por John Conway.

Usando uma matriz, que representa uma comunidade, onde cada posição representa um indivíduo, devemos implementar as seguintes regras para evolução da comunidade:
  1. Qualquer indivíduo com menos de dois vizinhos vivos morre de solidão.
  2. Qualquer indivíduo com mais de três vizinhos vivos morre de superpopulação.
  3. Qualquer indivíduo exatamente três vizinhos vivos se torna uma célula viva.
  4. Qualquer indivíduo dois vizinhos vivos continua no mesmo estado para a próxima geração.
Após verificar a situação de cada elemento, uma nova rodada de evolução é iniciada.

Quem estiver interessado em entender e resolver esse desafio:

http://pt.wikipedia.org/wiki/Jogo_da_vida

Um abraço!

quarta-feira, 10 de fevereiro de 2010

Discussão muito boa sobre ensino de Ciência da Computação

Eu já ouvi e falei algumas das frases que estão presentes nesse artigo da ACM várias vezes, tanto como aluno como professor:

http://cacm.acm.org/magazines/2010/1/55760-what-should-we-teach-new-software-developers-why/fulltext

Esse artigo é escrito por Bjarne Stroustrup, simplesmente, o desenvolvedor do C++.

Vale a pena dar uma lida!

sábado, 6 de fevereiro de 2010

Listas, Pilhas e Filas

Listas, Pilhas e Filas

As estruturas de dados dinâmicas mais simples em programação são as Listas. Essas estruturas são utilizadas quando a quantidade de elementos armazenados na estrutura não é previamente conhecida.

Por exemplo, podemos pensar numa biblioteca que irá cadastrar seus livros. A principio, seria possível utilizar um simples vetor de livros, ilustrado na Figura 1, para realizar essa tarefa.



Figura 1. Vetor de livros

Existem três problemas principais nessa solução:

  • Até que o vetor seja totalmente preenchido, haverá desperdício de memória.

  • Quando o vetor é totalmente preenchido nenhum novo livro poderá ser cadastrado.

  • Caso algum livro seja excluído esse vetor possuirá espaços vazios.

Para solucionar esse problema, podemos criar uma lista dinâmica. Nesse caso, a lista de livros poderá crescer e diminuir durante a execução do programa. Retomando o exemplo do livro, imagine que cada livro cadastrado utilize 1 Kbyte de memória dinâmica (não sabe o que é memória dinâmica?) e que há um vetor de seis posições. A Figura 2 ilustra a diferença no uso de memória entre uma implementação de lista usando um vetor estático e uma lista dinâmica.






Figura 2. Vetor estático Vs. uma lista dinâmica

Para implementação de uma lista dinâmica, cada nó é alocado na memória dinâmica e possui um ponteiro para o próximo elemento da lista. Além disso, essa implementação deve possuir um conjunto básico de métodos:

  • Inserir nó: esse método deve alocar uma área em memória para o novo nó e apontar o ponteiro do último nó para esse novo nó.

  • Encontrar nó: em listas simples, esse método deverá percorrer a lista inteira no pior caso.

  • Excluir nó: utiliza o método anterior e libera a memória correspondente. Além disso, deve

Tradicionalmente, listas dinâmicas são implementadas através de estruturas (não sabe o que é estrutura?) ou registros (não sabe o que é registro?) armazenadas na memória dinâmica. A estrutura que implementa um nó de uma lista deve incluir, além do conteúdo da informação do nó, um ponteiro para o próximo nó. Tipicamente, a definição da estrutura é da forma:

Listagem 1. Código em C

typedef struct noh {
struct noh* proximo;
} noh;

Listagem 2. Código em Pascal

Type noh=record
noh: proximo;
end

Cada nó de um lista é de memória dinâmica através de suas rotinas de alocação dinâmica de memória, que estão presentes na biblioteca padrão da linguagem. Há duas atividades básicas relacionadas à manipulação desta área:

  • Requisitar uma área de memória dentro do espaço livre disponível

  • Liberar uma área de memória

Em C, a alocação de memória é suportada pela rotina malloc (não conhece malloc?). Esta rotina recebe como argumento a quantidade em bytes que deverá ser alocada. Por isso utilizamos também a função sizeof que irá retornar o número de bytes ocupados por um tipo. O valor de retorno do malloc é o endereço do início da área que o sistema operacional alocou. Por exemplo, para reservar o espaço necessário para o nó de uma lista, seria necessário ter inicialmente declarado a variável que receberá o ponteiro para um nó:

noh *area;
area = malloc(sizeof(struct noh));

Para liberar uma área alocada por malloc, a rotina free deve ser utilizada. Assim, o exemplo acima poderia ser complementado da seguinte forma:

free(area);

Em Pascal, vamos utilizar a função new (não conhece a função new?), que aloca um espaço em memória para a variável recebida como argumento. A função para liberação de memória em Pascal é a função dispose.

var area : noh;
new(area);
d
ispose(area);

Filas e pilhas são estruturas usualmente implementadas através de listas, adicionando regras ao métodos de manipulação dos nós dessa lista.

Uma fila (queue) tipicamente estabelece uma política FIFO -- first in, first out -- de acesso aos dados. Em outras palavras, a ordem estabelecida na lista é a ordem de inserção. No momento de retirar um nó da lista, o nó mais antigo (o primeiro que entrou) é o primeiro a ser retirado.

Uma pilha (stack), por outro lado, estabelece uma política LIFO -- last in, first out. Uma estrutura de pilha também oferece basicamente duas operações de manipulação, PUSH, para inserção no topo da pilha, e POP, para retirada do topo da pilha.

Exercícios

  1. Crie uma lista para armazenamento de alunos de uma faculdade.
  1. Implemente uma função que tenha como valor de retorno o comprimento de uma lista, isto é, calcule o número de nós da lista.

  2. Escreva um algoritmo que inverta a ordem dos elementos dessa lista.

  3. Escreva uma função que receba uma lista encadeada terminada em NULL e devolva a soma das chaves dos nodes da lista. Escreva duas versões: uma iterativa e uma recursiva.

  4. Transforme essa lista em uma fila.

  5. Transforme essa lista em uma pilha.

  6. Escreva uma função que construa um vetor inteiro com o mesmo "conteúdo" de uma lista encadeada dada: o primeiro elemento do vetor deve ter o mesmo valor que o item do primeiro nó, o segundo elemento do vetor deve ter o mesmo valor que o item do segundo nó etc. Planeje com cuidado a "entrada" e a "saída" da sua função.


sexta-feira, 5 de fevereiro de 2010

Sexta-feira (Pesquisa e Ordenação)

Caros alunos,

como apresentado na aula de hoje, por favor sigam meus updates através desse Blog. As atividades de hoje são:

- Apresentações (meu nome é Luiz, não se esqueçam! hahaha)
- Nossa matéria é Pesquisa e Ordenação, cujo o planograma vocês podem requisitar enviando um email para lhzsantana@uninove.br.
- Em nossas aulas, vamos utilizar os programas
Dev C/C++:
www.bloodshed.net/devcpp.html
Free Pascal: http://www.freepascal.eti.br/

- Eu gostaria que vocês preenchessem a seguinte pesquisa de perfil:
http://www.surveymonkey.com/s/PMP8KDD

- Além disso, vamos tentar fazer os seguintes exercícios:

1. Faça um programa em C que receba do teclado a cotação atual do Dólar em relação ao Real e um valor, que deverá ser convertido de Real para Dólar. Faça a conversão do valor, baseado na cotação atual, e apresente o valor em Dólar para o usuário.

2. Crie um programa em C
para uma escola, para armazenamento dos dados de seus alunos, utilizando uma estrutura com os seguintes membros: nome, idade e telefone. Utilize o conceito de vetor de estruturas para armazenar até 20 alunos.

3. Escreva um programa que leia duas cadeias de caracteres e concatene a segunda cadeia ao final da primeira, e escreva essa cadeia em um arquivo.

quinta-feira, 4 de fevereiro de 2010

Quinta-feira (Pesquisa e Ordenação)

Caros alunos,

como apresentado na aula de hoje, por favor sigam meus updates através desse Blog. As atividades de hoje são:

- Apresentações (meu nome é Luiz, não se esqueçam! hahaha)
- Nossa matéria é Pesquisa e Ordenação, cujo o planograma vocês podem requisitar enviando um email para lhzsantana@uninove.br.
- Em nossas aulas, vamos utilizar os programas
Dev C/C++:
www.bloodshed.net/devcpp.html
Free Pascal: http://www.freepascal.eti.br/

- Eu gostaria que vocês preenchessem a seguinte pesquisa de perfil:
http://www.surveymonkey.com/s/337839T

- Além disso, vamos tentar fazer os seguintes exercícios:

1. Faça um programa em C que receba do teclado a cotação atual do Dólar em relação ao Real e um valor, que deverá ser convertido de Real para Dólar. Faça a conversão do valor, baseado na cotação atual, e apresente o valor em Dólar para o usuário.

2. Crie um programa em C
para uma escola, para armazenamento dos dados de seus alunos, utilizando uma estrutura com os seguintes membros: nome, idade e telefone. Utilize o conceito de vetor de estruturas para armazenar até 20 alunos.

3. Escreva um programa que leia duas cadeias de caracteres e concatene a segunda cadeia ao final da primeira, e escreva essa cadeia em um arquivo.

quarta-feira, 3 de fevereiro de 2010

Web 2.0 e PBL

Há muito tempo venho pensando nesse assunto e já publiquei alguns artigos com esse texto. Eu acreito que a Web 2.0 seja a ferramenta ideal para as necessidades do Problem-based Learning (PBL).

Web 2.0 é o termo cunhado por Tim O’Reilly para designar uma nova geração de serviços baseados na Web. Segundo sua definição a Web 2.0 é a mudança para uma internet como plataforma, onde os aplicativos aproveitem os efeitos de rede para se tornarem melhores quanto mais são usados pelas pessoas, aproveitando a inteligência coletiva Em outro artigo, o mesmo Tim O’Reilly sugere algumas regras que ajudam a definir a Web 2.0:

a) beta perpétuo: o software não é mais um artefato, mas um comprometimento dos desenvolvedores com os usuários;

b) pequenas peças frouxamente unidas: dados e serviços de uma aplicação devem ser reutilizados por outras, e devem reutilizar dados e serviços de outras aplicações sempre que possível;

c) software acima do nível de um único dispositivo: os aplicativos não estão no cliente ou servidor, mas no espaço entre eles;

d)l lei da conservação de lucros de Clayton Christensen: num ambiente de rede, APIs abertas e protocolos padrões vencem, sem que se perca a vantagem competitiva;

e) dados são o novo “Intel inside”: a mais importante vantagem competitiva será os dados.

A última regra talvez represente o maior impacto causado pela Web 2.0 e representado pela expressão User-Generated Content (UGC) ou mídia gerada pelo consumidor. O UGC surgiu com o avanço das tecnologias Web, que aumentou não só o acesso dos consumidores à informação, mas também sua facilidade para expressar suas opiniões. Na Internet o UGC está presente em comentários, fóruns, lista de discussões, blogs e fotologs, comunidades, grupos, sites participativos e na Wikipédia. Os consumidores utilizam todas as ferramentas disponíveis (e.g., sites, blogs, e-mails, mensagens, celulares) para divulgar, sobretudo, suas experiências pessoais e opiniões em relação a produtos, serviços, marcas, empresas, notícias. Assim como acontecia com o boca-a-boca, o UGC tende a ter um maior poder de influência sobre outros consumidores do que as mídias tradicionais (e.g., TV, rádio, jornais impressos), pois tendem a passar mais credibilidade.

O fenômeno da colaboração não é novo, desde os homens primitivos que se organizavam em busca de sobrevivência até os dias atuais com o fenômeno dos softwares livres ou de código aberto, agora como paradigma de produção e/ou distribuição de conhecimento. Entretanto, com o UGC e a Web 2.0, a colaboração tornou-se comum nas aplicações e atividades centradas na Web, sendo que essas aplicações não são apenas disponbilizam informações aos consumidores, como também permitem que estes disponbilizem suas informações.

Na Educação, essa mão dupla de comunicação poderá potencializar as técnicas já existentes medida em que as aplicações migrarem de um computador presente num certo espaço físico, para aplicações que estão em todo o espaço-tempo e não mais num local ou hardware particular. Além disso, em ambientes colaborativos, a construção do material pode ser feita pelos próprios estudantes e gerenciada e orientada pelos docentes, modificando o paradigma tradicional de educação onde os estudantes são apenas consumidores do conhecimento apresentado pelos docentes, tornando-se também construtores da informação. A análise de conteúdos desenvolvidos, também, permite aos docentes perceber com maior clareza quais as deficiências de seus estudantes e onde melhorar suas aulas. Alguns trabalhos evidenciam essas possibilidades, dentre os quais destacam-se:

a) Universidade Aberta do Brasil (UAB): um projeto criado pelo Ministério da Educação, para a articulação e integração experimental de um sistema nacional de educação superior. Esse sistema será formado por instituições públicas de ensino superior, as quais levarão ensino superior público para municípios brasileiros que não têm oferta ou cujos cursos ofertados não são suficientes para atender a todos os cidadãos. A UAB será formado por universidades federais e centros federais de educação tecnológica, articulados e integrados com a rede de pólos de apoio presencial para educação a distância;

b) Vídeo@RNP: este projeto permite a distribuição gratuita de vídeos sobre atividades de ensino e pesquisa realizadas em todo o país. Os conteúdos multimídias podem ser inseridos e acessados pela internet, permitindo que este material saja produzido coletivamente por um grande número de docentes, oferecendo vantagens como: a diminuição do tempo de produção e o aumento da qualidade do material criado;

c) One Laptop Per Child (OLPC): os laptops do MediaLab do MIT são projetados para acesso remoto para as aplicações baseadas na Web. Esta descentralização das atividades de aprendizagem torna-se possível quando as aplicações não se encontram mais fixas num espaço-tempo (e.g., máquina na escola ou em casa, num certo horário) mas se encontram disponíveis, virtualmente, em todos os lugares e tempos para os estudantes. Os OLPCs permitirão que os estudantes acessem aplicações que estão na Web 2.0 independente de hora ou local.

As definições da Web 2.0 e suas possibilidades para educação assemelham-se sobremaneira com a definição do Construtivismo, uma concepção do conhecimento e da aprendizagem, que deriva da epistemologia genética de Jean Piaget e da pesquisa sócio-histórica de Lev Vygotsky , que partem da idéia de que o conhecimento se constitui pela interação do indivíduo com o meio físico e social, por força de sua ação e não por qualquer dotação prévia. Na Educação, essa teoria reúne outras tendências atuais do pensamento, que têm em comum a insatisfação com um sistema educacional que consiste em repetir, recitar, aprender, ensinar o que já está pronto, ao invés de fazer agir, operar, criar, construir a partir da realidade vivida por estudantes e docentes. Nesta concepção o conhecimento não se traduz em atingir a verdade absoluta, mas numa questão de adaptação do organismo a seu meio ambiente. Assim, o sujeito do conhecimento está o tempo todo modelando suas ações e operações conceituais com base nas suas experiências.

Dentre as metodologias educacionais construtivistas destaca-se a Problem-Based Learning (PBL), na qual o aprendizado passa a ser centrado no estudante, que sai do papel de receptor passivo, para o de agente e principal responsável pelo seu aprendizado. Os docentes que atuam como facilitadores nos grupos têm a oportunidade de conhecer bem os estudantes e de manter contato com eles durante todo o curso. A metodologia do PBL enfatiza o aprendizado auto-dirigido, centrado no estudante e ocorre em pequenos Grupos (até 12 estudantes). Diferentemente das metodologias tradicionais, o docente se limita a facilita a discussão dos estudantes, conduzindo-a quando necessário e indicando os recursos didáticos úteis para cada situação. Uma sessão tutorial inicial trabalha os conhecimentos prévios dos estudantes sobre o assunto apresentado; os problemas são primeiramente identificados e listados, e em seguida são formulados os objetivos de aprendizado, com base em tópicos considerados úteis para o esclarecimento e a resolução do problema (sete passos). Na etapa seguinte os estudantes vão trabalhar independentemente, na busca de informações e na sua elaboração (estudo auto-dirigido) antes da próxima sessão tutorial, quando as informações trazidas por todos serão discutidas e integradas no contexto do caso-problema.

Quarta-feira (Pesquisa e Ordenação)

Caros alunos,

como apresentado na aula de hoje, por favor sigam meus updates através desse Blog. As atividades de hoje são:

- Apresentações (meu nome é Luiz, não se esqueçam! hahaha)
- Nossa matéria é Pesquisa e Ordenação, cujo o planograma vocês podem requisitar enviando um email para lhzsantana@uninove.br.
- Em nossas aulas, vamos utilizar os programas
Dev C/C++:
www.bloodshed.net/devcpp.html
Free Pascal: http://www.freepascal.eti.br/

- Eu gostaria que vocês preenchessem a seguinte pesquisa de perfil:
http://www.surveymonkey.com/s/MSLBHFQ

- Além disso, vamos tentar fazer os seguintes exercícios:

1. Faça um programa em C que receba do teclado a cotação atual do Dólar em relação ao Real e um valor, que deverá ser convertido de Real para Dólar. Faça a conversão do valor, baseado na cotação atual, e apresente o valor em Dólar para o usuário.

2. Crie um programa em C
para uma escola, para armazenamento dos dados de seus alunos, utilizando uma estrutura com os seguintes membros: nome, idade e telefone. Utilize o conceito de vetor de estruturas para armazenar até 20 alunos.

3. Escreva um programa que leia duas cadeias de caracteres e concatene a segunda cadeia ao final da primeira, e escreva essa cadeia em um arquivo.

terça-feira, 2 de fevereiro de 2010

Terça-feira (Práticas em Linguagens de Programação)

Caros alunos,

como apresentado na aula de hoje, por favor sigam meus updates através desse Blog. As atividades de hoje são:

- Apresentações (meu nome é Luiz, não se esqueçam! hahaha)
- Nossa matéria é Práticas em Linguagens de Programação, cujo o planograma vocês podem requisitar enviando um email para lhzsantana@uninove.br.
- Em nossas aulas, vamos utilizar o programa Dev C/C++:
www.bloodshed.net/devcpp.html
- Eu gostaria que vocês preenchessem a seguinte pesquisa de perfil: http://www.surveymonkey.com/s/WRXZ5BR
- Além disso, vamos tentar fazer os seguintes exercícios:

1. Faça um programa em C que dada um temperatura em graus Celsius, fornecida via teclado, exiba como saída a temperatura em graus Fahrenheit.

3. Escreva um programa que leia duas cadeias de caracteres e concatene a segunda cadeia ao final da primeira, e escreva essa cadeia na tela.

2. Crie um programa em C
para uma biblioteca, que receba o nome de 20 livros em um vetor.

segunda-feira, 1 de fevereiro de 2010

Segunda-feira (Pesquisa e Ordenação)

Caros alunos,

como apresentado na aula de hoje, por favor sigam meus updates através desse Blog. As atividades de hoje são:

- Apresentações (meu nome é Luiz, não se esqueçam! hahaha)
- Nossa matéria é Pesquisa e Ordenação, cujo o planograma vocês podem requisitar enviando um email para lhzsantana@uninove.br.
- Em nossas aulas, vamos utilizar o programa Dev C/C++:
www.bloodshed.net/devcpp.html
- Eu gostaria que vocês preenchessem a seguinte pesquisa de perfil: http://www.surveymonkey.com/s/C5HTT7G
- Além disso, vamos tentar fazer os seguintes exercícios:

1. Faça um programa em C que dada um temperatura em graus Celsius, fornecida via teclado, exiba como saída a temperatura em graus Fahrenheit.

2. Crie um programa em C
para uma biblioteca, que utilize uma estrutura com os seguintes membros: nome do livro, autor, editora e ano de publicação. Utilize o conceito de vetor de estruturas para armazenar até 20 livros.

3. Escreva um programa que leia duas cadeias de caracteres e concatene a segunda cadeia ao final da primeira, e escreva essa cadeia em um arquivo.