300 IDÉias para programar computadore



Baixar 300,72 Kb.
Página1/6
Encontro18.05.2017
Tamanho300,72 Kb.
  1   2   3   4   5   6


300 IDÉIAS PARA PROGRAMAR COMPUTADORES



Na minha vivência profissional, como programador, analista de sistemas e professor, tenho visto programadores de vários tipos. Alguns são mais criativos, outros menos, e também há os que parecem eternos iniciantes. Alguns têm sólida formação em algoritmos e técnicas de programação; outros não a tem mas se viram quando precisam. Há programadores que praticamente se "viciam" em comandar computadores, e extraem grande prazer dessa atividade, e há outros que o fazem por fazer, simplesmente, talvez pelo salário.



Os programadores realmente bons, que unem formação técnica, criatividade, curiosidade e prazer parecem ser relativamente poucos. Naqueles que conheci pude perceber padrões: eles têm acesso a um computador, em casa ou em outro lugar; têm uma grande disposição de buscar soluções por si mesmos e, acima de tudo, eles programam muito. Não dependem de alguém mandá-los programar, tendo ou não suas próprias idéias. Para resumir, eles simplesmente praticam muito, e este é o fator maior que, na minha opinião, os torna melhores que os outros.

Por isto foi elaborado este material, cujo conteúdo consiste essencialmente de especificações de programas, não voltadas para nenhuma linguagem de programação em particular. Sua maior finalidade é fornecer idéias para que programadores ávidos possam programar, programar e programar, e assim se tornar cada vez melhores. Uma restrição é que a implementação de algumas das especificações será mais apropriada estando a tela em modo texto, o que não impede que muitas delas possam fornecer inspiração para programas em interface gráfica.

A maioria das especificações propostas são voltadas para iniciantes em uma linguagem de programação, e estruturadas na forma que considero mais didática: no início apenas comandos de saída e instruções matemáticas simples, de forma a não sobrecarregar o estudante que, nesse momento, ainda está normalmente assimilando uma série de novas informações sobre processadores, instruções, seqüência, controle e o próprio compilador. Os capítulos seguintes gradativamente incorporam às especificações novos tópicos: variáveis, tipos de dado e entrada, decisão, repetição e outras.

Os primeiros cinco capítulos estão organizados em tópicos, e estes focalizados em estruturas de programação. Os exercícios, embora variados, não são todos diferentes: alguns combinam dois ou mais exercícios de capítulos anteriores, resultando em um mais complexo e no qual o estudante pode aplicar a experiência adquirida.

O último capítulo sugere idéias para programas, existentes ou não, que podem ser implementadas por programadores que já tenham amadurecido os recursos básicos de uma linguagem de programação, podendo também ser usadas para trabalhos práticos de iniciativa pessoal ou determinados pelo professor. Em alguns casos, é dado algum direcionamento inicial para a implementação; em outros, o desafio é todo do programador!

Este é um material para ser usado como um complemento, não servindo por si só para suportar um curso. Dependendo da proposta didática do professor que o adote, será necessário adequar a seqüência em que as especificações serão propostas aos estudantes.

Obviamente não há qualquer limite para a evolução deste trabalho; por isto, críticas, sugestões e eventuais correções serão sempre muito bem vindas.

Virgílio Vasconcelos Vilela



virgilio@tba.com.br

Brasília, Fevereiro/1999.



SUMÁRIO

.1 BÁSICOS 1

.1.1. SAÍDA SIMPLES 1

.1.2. MATEMÁTICA 4

.1.3. CONTROLE DE TELA 5

.1.4. SONS 6

.2 VARIÁVEIS E ENTRADA DE DADOS 7

.2.1. SAÍDA SIMPLES 7

.2.2. MATEMÁTICA 7

.2.3. CARACTERES E CADEIAS 10

.2.4. CONTROLE DE TELA 10

.2.5. SONS 11



.3 ALTERNATIVAS E DECISÃO 13

.3.1. SAÍDA SIMPLES 13

.3.2. MATEMÁTICA 13

.3.3. CARACTERES E CADEIAS 15

.3.4. CONTROLE DE TELA 15

.3.5. SONS 15

.3.6. VARIADOS 15

.4 Repetição 19

.4.1. SAÍDA SIMPLES 19

.4.2. MATEMÁTICA 20

.4.3. CARACTERES E CADEIAS 22

.4.4. CONTROLE DE TELA 23

.4.5. SONS 24

.4.6. REGISTROS E VETORES 24

.4.7. ARQUIVOS 26

.4.8. VARIADOS 26

.5 CRIAÇÃO DE instruções 29

.5.1. MATEMÁTICA 29

.5.2. CARACTERES E CADEIAS 30

.5.3. CONTROLE DE TELA 32

.5.4. SONS 32

.5.5. REGISTROS E VETORES 32

.5.6. ARQUIVOS 33

.5.7. VARIADOS 34



.6 Idéias e mais idéias 37

.6.1. ENTRETENIMENTO 37

.6.2. DOMÉSTICOS 38

.6.3. EDUCATIVOS 39

.6.4. VARIADOS 39

.6.5. DESAFIOS 40




    1. BÁSICOS


Quando começamos, há muita informação nova a ser assimilada. Por isso, convém iniciar pelo mais simples. Para implementar os programas especificados neste capítulo, basta conhecer a estrutura de um programa e algumas poucas instruções (veja o apêndice A). Não são necessárias ainda instruções para tomar decisões ou controlar repetições. Isto lhe dá tempo para assimilar as (possivelmente) novas ferramentas, como editor, compilador e outras.
      1. SAÍDA SIMPLES

        1. Frase na tela - Implemente um programa que escreve na tela a frase "O primeiro programa a gente nunca esquece!".

        2. Etiqueta - Elabore um programa que, após limpar a tela, escreve seu nome completo na primeira linha, seu endereço na segunda, e o CEP e telefone na terceira.

        3. Frases assassinas - Faça um programa que mostre na tela algumas frases assassinas, que são aquelas que fazem com muitas idéias sejam perdidas antes que amadureçam ou seja aprofundadas. Eis alguns exemplos (bole também os seus):


"Isto não vai dar certo"

"Você nunca vai conseguir"

"Você vai se estrepar"

"Não vai dar em nada"

"Está tudo errado!"

        1. Mensagem - Escreva uma mensagem para uma pessoa de que goste. Implemente um programa que imprima essa mensagem, e envie-a.

        2. Ao mestre - Escreva um bilhete ao seu professor, informando seus objetivos nesta disciplina e o que espera dela e do professor. Implemente um programa que mostra seu bilhete na tela.

        3. Quadrado - Escrever um programa que mostre a seguinte figura no alto da tela:


XXXXX

X X


X X

X X


XXXXX
        1. Tabela de notas - Escreva um programa que produza a seguinte saída na tela:


ALUNO(A) NOTA

======== =====

ALINE 9.0

MÁRIO DEZ

SÉRGIO 4.5

SHIRLEY 7.0

        1. Apresentação - Um estudante ia participar de uma feira de ciências e seu projeto tinha o tema "fotossíntese". Ele conseguiu um notebook emprestado, e queria um programa que lhe permitisse apresentar um texto dividido em partes, cada parte em uma tela, e o programa deveria mudar para a próxima tela ao toque de uma tecla. A tela inicial deve ser a palavra "FOTOSSÍNTESE" escrita com letras grandes. Faça o programa para o estudante, usando o texto abaixo, no qual cada parágrafo deve aparecer em uma tela diferente. Como o estudante não entende muito de operação de computadores, você tem que também gerar um arquivo executável, copiá-lo para o outro computador e incluir um ícone para fácil execução sob Windows.


Texto:

"A água e os sais minerais absorvidos pelas raízes sobem através dos vasos lenhosos do caule e chegam às folhas.

Nas folhas, existe uma substância verde, a clorofila, que absorve a energia luminosa do sol. Ao mesmo tempo, por meio dos estômatos presentes nas folhas, a planta absorve gás carbônico do ar.

Usando a energia solar, o gás carbônico e o hidrogênio contido na água retirada do solo, após complicadas reações químicas, a planta produz açúcares (glicose)."
        1. Letra grande - Elabore um programa para produzir na tela a letra X usando a própria. Se fosse ‘L’, seria assim:


L

L

L



L L L L
        1. Palavra grande - Escreva um programa que produza a tela esquematizada abaixo:


******** ******** *

* * * *


* * * *

******** * * *

* * * *

* * * *


******** ******** ********


        1. Desenho datilográfico - Há um artista que faz desenhos somente com caracteres disponíveis em uma máquina de escrever. Bole uma figura nesse estilo (bem melhor que a abaixo, se possível) e faça um programa que a mostre na tela.


____

/ \


/ o o \

\ ^ /


\_ ~ /
        1. Emoticons - Emoticons são seqüências de caracteres que mostram rostos e expressões, vistos de lado e usados freqüentemente em correios eletrônicos e bate-papos na Internet. Existem dezenas; veja alguns:


:-) sorriso

:-( tristeza

:-p mostrando a língua

:-o espanto

{:-) cabelo partido ao meio

:-{ usa bigode

:-* beijo
Elabore um programa que mostre na tela os emoticons, um em cada linha, com a descrição de cada um.
        1. Pinheiro 1 - Implemente um programa que desenhe um "pinheiro" na tela, similar ao abaixo. Enriqueça o desenho com outros caracteres, simulando enfeites.


X

XXX


XXXXX

XXXXXXX


XXXXXXXXX

XXXXXXXXXX

XXXXXXXXXXXX

XXXXXXXXXXXXXX

XX

XX

XXXX


        1. Pinheiro 2 -Elabore uma versão 2 do programa do item anterior que desenhe o pinheiro com asteriscos (*). [Dica: use o recurso de localização/substituição do editor para fazer a substituição rapidamente]

        2. Menu - Elabore um programa que mostre o seguinte menu na tela:

Cadastro de Clientes


0 - Fim

1 - Inclui

2 - Altera

3 - Exclui

4 - Consulta
Opção: _

      1. MATEMÁTICA

        1. Expressões aritméticas - Calcule as expressões abaixo, observando a precedência dos operadores. Escreva um programa que mostre na tela o resultado de cada expressão e confira seus cálculos.


2*6 + 11*5 =

20/(-2)/5 =

20/2*2 =

(3+9)/3*4 =

(5*6/(3+2) - 15*4)/6-4 =

4+32*2 -7*2/(9-2) =


        1. Div e mod - Calcule as expressões abaixo; o operador mod calcula o resto, e div, o quociente da divisão inteira. Depois, escreva um programa que lhe permita verificar, quando executado, se você calculou corretamente.


37 mod 13 =

41 div 7 =

11 div 3 mod 2 =

11 mod 3 div 2 =


        1. Conta telefônica - Uma conta telefônica é composta dos seguintes custos:


assinatura: R$ 17,90

impulsos: R$ 0,04 por impulso que exceder a 90

interurbanos

chamadas p/ celular: R$0,20 por impulso

Monte a fórmula para calcular o valor da conta para 254 impulsos, R$34,29 de interurbanos e 23 chamadas para celular. Elabore um programa que mostra os custos, calcula e mostra o valor total.

        1. Tempo livre - Um estudante muito metódico estava matriculado em 6 disciplinas, e dispunha de 1 hora e 40 minutos para estudar. Sua intenção era dividir o tempo disponível igualmente para as 6 disciplinas, e descansar livremente o tempo restante. Faça um programa que calcule o tempo que ele deve dedicar para cada disciplina e o tempo livre. [Dica: use os operadores div e mod]

        2. Otimização de corte - Um marceneiro, para fazer um trabalho, precisa cortar vários pedaços de madeira de 45 cm cada um. Ele pode comprar tábuas de 3, 4 ou 5 metros. Usando os operadores div e mod, faça um programa que calcule a quantidade de pedaços e a sobra para cada tipo de tábua, permitindo assim uma melhor escolha do marceneiro.

        3. Média de notas - Monte uma expressão matemática que calcula a média de suas notas (todas) de um período anterior. Faça o cálculo através de um programa, mostrando na tela o resultado, formatado com duas casas decimais e dentro de uma moldura (um retângulo feito com algum caractere).

        4. Conversão de temperatura - Faça um programa que calcula e mostra uma tabela de graus Celsius/Fahrenheit de 1 a 10 [fórmula: C = 5/9(F-32)]. Por enquanto (sem comandos de repetição), você deverá escrever as instruções para calcular e mostrar cada resultado.

        5. Imposto - Um imposto é calculado com base na seguinte tabela:


Até 1.200,00 isento

de 1.201,00 a 5.000,00 10%

de 5.001,00 a 10.000,00 15%

acima de 10.000,00 20%.

Implemente um programa que calcule os impostos a pagar para um valor em cada faixa. Para cada um, mostre uma mensagem que identifique na tela a que se refere cada valor.

        1. Funções matemáticas - Fornecer o valor retornado pelas operações matemáticas abaixo. Depois, chamando as funções adequadas, escreva um programa que lhe permita verificar a correção dos seus cálculos:


Raiz quadrada de 169

172



Cosseno(0)

1
.65 arredondado para inteiro
        1. Comprimento de fio - Um eletricista precisa comprar fio que irá passar, pelo telhado, por toda a diagonal de uma casa de formato retangular. Como ele não tem condições de medir a diagonal com precisão (ou talvez não queira...), a solução alternativa que ele encontrou foi medir os lados da casa, sabendo que a diagonal pode ser calculada com base nos lados pelo Teorema de Pitágoras (a2 = b2 + c2). Considerando que a casa mede 11,5 x 6,3 metros, faça um programa que calcule a quantidade mínima necessária de fio a ser comprada, com precisão até centímetros.

        2. Tempo dedicado - Uma pessoa com pouco tempo disponível lê um livro por 5 minutos a cada dia, 6 dias por semana. Monte a fórmula e escreva um programa que calcula e mostra na tela quanto tempo, em horas, a pessoa terá dedicado ao livro ao final de um ano.

        3. Cálculo de notas - Um professor atribui pesos de 1 a 4 para as notas de quatro avaliações. A nota é calculada por meio da média ponderada (N1 + N2*2 + N3*3 + N4*4)/10, onde N1 é a nota da primeira avaliação, N2 a da segunda, etc..Um aluno tirou as seguintes notas: 8 - 7,5 - 10 - 9. Faça um programa que calcula e mostra as notas e a média deste aluno, sendo a média formatada com 1 casa decimal.

        4. Funções aninhadas - Escrever um programa que calcula a raiz de 3, arredonda o resultado e calcula a exponencial do valor resultante.

        5. Devagar se vai ao longe - Vou e volto diariamente a pé para o trabalho, que dista aproximadamente 800 m de minha casa. Supondo que trabalho 5 dias por semana, 45 semanas por ano, "bole" a operação matemática que deve ser efetuada para calcular quantos quilômetros, aproximadamente, terei andado ao final de um ano. Elabore um programa que faça as contas e mostre o resultado na tela.

      1. CONTROLE DE TELA

        1. Quadrado posicionado - Refaça o programa que desenha o "quadrado" no alto da tela (.1.1.6 ), desta vez desenhando-o com o canto superior esquerdo na linha 7, coluna 20.

        2. Menu posicionado - Elabore um programa que mostre o seguinte menu centralizado na tela, e espera uma tecla ser pressionada para terminar (o traço após "Opção:" é o cursor). Use comandos de posicionamento do cursor para facilitar.


Menu Relatórios

1 - Por nome

2 - Por código

3 - Por data

4 - Fim


Opção: _


        1. Cruz - Elabore um programa que mostra uma linha vertical na coluna 40, formada pelo caractere "#", e uma linha horizontal na posição 10 formada por "=". Entre uma e outra e antes de terminar, o programa espera que uma tecla seja pressionada.

        2. Triângulo com iniciais - Escrever um programa que desenha um triângulo, aproximadamente centralizado, na tela (que em modo texto normal tem 80 colunas por 25 linhas), tendo dentro as iniciais do seu nome. Faça o programa limpar a tela no início e esperar uma tecla antes de terminar.

        3. Apresentação em cores - Altere o programa da fotossíntese (.1.1.8 ) de forma que cada página de texto seja mostrada com uma cor diferente. Destaque palavras específicas do restante do texto com uma cor, como por exemplo, "verde" na cor verde

        4. Animação horizontal - Faça um programa que desenha um "O" na linha 5, coluna 1 e depois faz o seguinte, esperando uma tecla para cada ação (sempre na linha 5):


- apaga o "O" da coluna 1 e o mostra na coluna 2

- apaga da coluna 2 e mostra na 3

- apaga da 3 e mostra na 4

E assim sucessivamente até a coluna 15. Execute o programa mantendo pressionada alguma tecla e veja o resultado.


        1. Animação horizontal - Elabore um programa semelhante ao anterior, mas variando a linha.

      1. SONS

        1. Afinação - Alberto toca violão e é programador. Precisando afinar o violão e sem diapasão por perto, resolveu fazer um programa para ajudá-lo. O que ele queria era a nota Lá soando sem parar até que ele conseguisse afinar a respectiva corda do violão; as demais cordas ele poderia afinar com base na primeira. Escreva um programa que faz soar no alto-falante do computador a nota Lá (440 Hz) e só para quando for pressionada alguma tecla.

        2. Parabéns - Faça um programa que emite as seis primeiras notas do "Parabéns prá você". Tente as seguintes notas (freqüência em Hz/duração em milissegundos): [440,200], [440,200], [500,800], [440,400], [600,400], [560,800],



  1   2   3   4   5   6


©livred.info 2017
enviar mensagem

    Página principal