terça-feira, 4 de maio de 2010

Resumão

Introdução a programação


Objetivos

• Obter conhecimentos básicos sobre o raciocínio algorítmico e as linguagens de programação.

• Aprender comandos básicos da linguagem de programação PascaL.

• Criar, compilar e executar pequenos programas em PascaL.

Conhecimentos que vão ser obtidos

Comandos básicos do PascaL,como fazer um programa e compilá-lo logo executá-lo. O computador apenas executa o que lhe foi pedido, porem com uma velocidade sobre-humana.

O PascaL

Programa baseado num robô-tartaruga que recebia comandos através de um fio e que em sua base existia uma caneta que deixava um rastro num papel de acordo com seu movimento.

Com a evolução o robô passou a ser representado em um computador com um ícone de uma tartaruga. Em seguida ficou muito comum a representação feita por um triangulo.

Com o programa é possível realizar vários desenhos, de um simples quadrado a mais complexos, veja abaixo:


Porem, o PascaL não deve ser visto como apenas um programa para fazer desenhos, e sim como um universo cheio de possibilidades e como um grande instrumento para o desenvolvimento de habilidades em estruturas formais.

Usando o PascaL

Utilize o link abaixo:

http://sureco.grude.ufmg.br/moodle16/file.php/67037/GuiasdeEstudo/gul_introdpc/gul_matref/Para_usar_o_PascaL.swf

Desenhando uma linha no PascaL

No PascaL, para avançar o robô basta utilizar o comando pfrente, o qual é uma abreviatura de PARA FRENTE, e sua execução fará com que o robô se desloque e (eventualmente) deixe um rastro na tela.

Para criar uma linha de tamanho 60, basta digitar pfrente(60) no espaço de comandos, conforme a figura abaixo, e clicar em Execute.

Utilizando linhas transparentes

• UL significa Use Lápis. O robô abaixa o lápis que está em sua base, fazendo com que, nos comandos usados depois desse, seja deixado um rastro na tela.

• UN significa Use Nada. Neste caso o robô levanta o lápis que está em sua base, fazendo com que, nos comandos usados depois desse, não seja deixado um rastro na tela.

Alterando a direção do robô

Para que possamos mudar a direção do robô na tela podemos utilizar o comando pdireita, que é uma abreviatura de PARA DIREITA. Este comando recebe como parâmetro o número de graus para direita da nova direção do robô. Por exemplo, a execução de pdireita(90) fará com que o robô gire 90 graus para direita na tela.

Obs: Os comandos PascaL podem ser fornecidos em maiúsculas ou minúsculas indiferentemente. Não existe um comando para apagar apenas um traço, portanto, se um erro for cometido é preciso apagar o desenho todo (com ClrScr) e repetir os comandos novamente.

Geometria do Robô

Abaixo são apresentados alguns comandos PascaL utilizados para mover o robô. Com o passar do tempo você aprenderá a utilizá-los para desenhar figuras neste ambiente.




As vezes temos problemas com a lógica do programa, ou seja, o programa executa o que foi pedido, porem o que foi pedido não é o desejado.

Para mais informações

http://sureco.grude.ufmg.br/moodle16/file.php/67037/GuiasdeEstudo/gul_introdpc/gul_matref/Erros_logica.swf

Como criar um programa no pascal

http://sureco.grude.ufmg.br/moodle16/file.php/67037/GuiasdeEstudo/gul_introdpc/gul_matref/Programando_PascaL.swf

Programando seu computador

Objetivos

• Conhecer o processo de desenvolvimento de um programa de computador;

• Apresentar soluções para desafios através de algoritmos;

• Desenvolver o raciocínio lógico para solução de problemas.

Conhecimentos que vão ser obtidos

Desenvolvimento de algoritmos, estrutura de dados associada e interface.

Depois de definir tudo isso, é feita uma conversão do algoritmo para que o computador possa entender e executar o que está sendo pedido.

Definições

Todo programa de computador é uma combinação de:

- um algoritmo (a lógica da solução);

- uma estrutura de dados associada (organização dos dados na memória do computador para acomodar a solução);

- uma interface (descrição de como o usuário do programa irá interagir com o programa).

Algoritmo é um conjunto de tarefas que deve ser seguido para a solução de algum problema ou execução de uma atividade.

Exemplo de algoritmo

Algoritmo para somar três números

Passo 1 - Receber os três números.

Passo 2 - Somar os três números.

Passo 3 - Mostrar o resultado obtido.

Estrutura de dados associada é onde toda informação, fornecida para o programa ou obtida através dele, é guardada organizadamente.

Interface é onde a pessoa vai interagir com o programa, uma janela, por exemplo, com espaços para entrada e saída de dados.

Explorando o PascaL

Objetivos

• Conhecer os conceitos de variáveis;

• Utilizar a estrutura de repetição FOR para solução de problemas;

• Apresentar soluções para os problemas apresentados utilizando o ambiente PascaL;

Conhecimentos que vão ser obtidos

Conceitos de variáveis e estrutura de repetição FOR.

Um programa em PascaL é uma seqüência de comandos escritos na linguagem Pascal que deve ser editado, salvo em um arquivo, e depois compilado e executado. Ao construir um programa completo, é necessário fornecer um comando de cada vez, escrevendo um texto como uma seqüência de comandos e usando o ponto-e-vírgula para separar estes comandos. Os comentários também são muito importantes para tornar o programa compreensível para outras pessoas e para você mesmo, posteriormente. Imagine não compreender um programa que você próprio fez?!

A compilação é o processo que verifica inicialmente se o texto do programa está escrito de acordo com as regras sintáticas da linguagem.

Variável

Você sabe o que é?

Veja uma simples explicação:

http://sureco.grude.ufmg.br/moodle16/file.php/67037/GuiasdeEstudo/gun_explorpascal/gun_matref/ConceitodeVariavel.html

Conhecendo algumas variáveis:


A estrutura de repetição FOR tem como base, pegar trechos do programa que se repetem varias vezes e ao invés de ter que digitar um mesmo trecho sucessivamente, esse comando FOR faz a repetição automaticamente.

Aplicação do comando FOR

http://sureco.grude.ufmg.br/moodle16/file.php/67037/GuiasdeEstudo/gun_explorpascal/gun_matref/EstruturasdeRepeticao.html

Estrutura de Controle

Objetivos

• Conhecer os conceitos de estruturas de controle de uma linguagem de programação, suas representações e dinâmica.

• Utilizar as estruturas de controle no desenvolvimento de programas PascaL.

• Formalizar a estrutura dos comandos de entrada e saída em PascaL.

Conhecimentos que vão ser obtidos

Utilizar variáveis nos programas, utilizar estruturas condicionais e de repetição. Estruturas condicionais permitem a escolha do grupo de comandos a ser executados de acordo com determinadas condições. Estruturas de repetição permitem que uma seqüência de comandos seja executada repetidamente até que uma determinada condição de interrupção seja satisfeita. E também a utilizar os comandos de entrada e saída em PascaL.

Todo programa é uma seqüência de comandos. Um comando da seqüência pode utilizar as estruturas de repetição ou alternativa e assim sucessivamente. Uma estrutura de repetição ou alternativa também pode utilizar, de forma encaixada, novas estruturas de seqüência, repetição e alternativa. O número de encaixes que desejarmos fazer vai depender do problema e da forma que estruturarmos a solução do problema. A figura abaixo representa uma seqüência de comandos com repetições e alternativas encaixadas uma na outra.



Estruturas de controle

Seqüencial

Essa estrutura é caracterizada por executar os comandos numa seqüência dada, e cada comando é separado um ponto-e-vírgula.

Um exemplo


O que é escrito entre colchetes o programa não executa.

Repetitiva

Nesta estrutura é feita uma repetição de um conjunto de comandos, e a interrupção dessa repetição depende de cada estrutura utilizada.

No nosso caso temos três diferentes:

FOR

O comando for gera uma estrutura de controle repetitiva, onde um conjunto de instruções é executado repetitivamente até que uma dada condição ocorra.

Um exemplo:



Aqui a cada repetição do conjunto de comandos entre begin-end, é acrescentada uma unidade a variável ‘L’, ao ultrapassar quatro a repetição é encerrada.

WHILE

O comando WHILE é uma estrutura de repetição mais geral: WHILE = enquanto. O comando FOR é um caso particular do WHILE. O comando FOR opera somente com acréscimos +1 ou -1 (for i:=10 downto 1 do). No comando WHILE é possível programar outros valores de acréscimos.

Um exemplo:



Na figura está em destaque o lugar onde você pode alterar o valor que deseja acrescentar a variável ‘i’, neste caso o acréscimo é de uma unidade. E enquanto o valor de ‘i’ for menor ou igual a 100, o que está entre o Begin-end; logo depois de “while i<=100 do” será repetido.

Este programa tem como saída: “A soma dos números divisíveis por 3 entre 1 e 100 é: 1683”.

REPEAT

Algumas vezes é necessário executar a dentro do bloco de repetição pelo menos uma vez. Mas, devido à condição inicial da entrada do bloco, o comando pode não ser executado nunca. A solução para isso é repetir a lista de comandos antes do comando WHILE. Porem se a lista de comando for muito grande pode ser inconveniente, para isto utiliza-se o REPEAT.

O que diferencia o REPEAT do WHILE é a verificação que é feita no final do bloco de comandos e não no inicio.



Em destaque está a condição que se localiza no final da lista de comandos.

Alternativa

Para ter flexibilidade, um programa precisa processar comandos de forma alternativa, isto é, dependendo de uma condição, um determinado conjunto de instruções é executado. Dependendo de outras condições, um conjunto alternativo de questões é executado.

Para isso temos o comando “if-then-else” = se-então-senão.

Este comando verifica se uma condição é verdadeira ou não, sendo verdadeira é executada uma lista de comando, sendo falsa é executada outra lista de comando.



Assim sendo, pela figura tem-se que, quando a condição é verdadeira a lista de comandos 1 é executada, no caso de ser falsa é a lista 2.

Você pode utilizar o comando “if-then-else” sem a parte “else” ficando da seguinte maneira.



Se a condição for verdadeira é executada a lista de comandos, caso contrário, o próximo comando depois do “if” é executado.


Comandos de entrada e saída

• O writeln é um comando para saída de dados na tela do computador. O comando writeln('Entre com um número: '); faz com que o texto "Entre com um número:" seja impresso na tela do programa. O comando writeln('O resultado da divisão é: ', resultado) escreve na tela o texto "O resultado da divisão é: 3" caso o valor da variável resultado seja 3.

• O readln é o comando para entrada de dados. Quando o comando readln(divisor) é executado, o sistema aguarda até que o usuário entre com o valor do divisor para que o resultado possa ser calculado. Se ele digitar o valor 3, o variável divisor passa a ter esse valor.

Exemplo:



Como já foi dito o programa não executa nada que esteja entre colchetes, aqui está apenas para identificar cada parte.

Para a entrada de dados aparece a seguinte janela:





Para saída de dados com x, y, z sendo 2, 3, 4 respectivamente:



Guia de estudos 1-Introdução a programação

O mais fácil de fazer neste grupo foi um que deveria copiar um programa já pronto, colar no PascaL, compilar e executá-lo.

O mais difícil foi realmente o do termômetro, deu um pouco mais de trabalho.

O que mais gostei foi o de desenhar o cubo, simplesmente pelo seu resultado final, o desenho é legal.

Não gostei de fazer justamente o que achei mais fácil, não teve desafio nenhum em fazê-lo, apenas copiar e colar.

Guia de estudos 2- Programando seu computador

Sinceramente achei todos fáceis.

O que mais gostei foi de jogar o Open Doors.

Não teve um que não gostei todos estavam num mesmo nível.

Guia de estudos 3- Explorando o PascaL

O mais fácil foi de desenhar o hexágono.

O mais difícil foi o de calcular a área da própria circunferência que desenhei anteriormente.

Gostei de calcular a área da circunferência, pois tinha um desafio maior.

Não teve um que não gostei, mas o que menos gostei foi o desenhar um hexágono.

Guia de estudos 4- Estruturas de controle

Achei mais fácil de fazer o que desenhava um pentágono.

Com certeza o mais difícil foi o de estatísticas de idades.

Gostei de todos, em especial o de estatísticas de idades, por ser mais complexo e exigir um raciocínio mais apurado. Gostei demais de ter concluído este programa.

Minha opinião sobre a aula:

Sobre o método adotado, educação a distancia, eu não gosto muito. Meu aprendizado é melhor quando alguém me explica. Porem nas aulas de programação estou conseguindo assimilar bem a matéria. Não tendo grandes dificuldades. Penso que seja pelo fato de ter facilidade em mexer com computadores, ser muito curioso e gostar de desafios.

Por outro lado já vejo outros alunos com grandes dificuldades. O que poderia ser resolvido com uma boa explicação oral antes de cada atividade.

De modo geral estou gostando bastante da matéria, ela me força a pensar e tentar desenvolver um programa eficaz, ela é bem desafiante.

Contudo alguns colegas, não estão gostando, pela própria dificuldade de ter que aprender a principio apenas lendo o guia de estudos. A minha opinião é que talvez se possível mudar o método de ensino, para que a maioria possa acompanhar de modo uniforme o desenvolver da matéria.

E outra dificuldade que vejo também nesse método é que algumas pessoas não têm acesso integral à internet, dependendo assim de lan-house e do laboratório de informática que às vezes é bem disputado.

terça-feira, 30 de março de 2010

Jogos

Shift= http://www.haznosblog.kit.net/2008/shift/
Open Door= http://www.kongregate.com/games/soapaintnice/open-doors
Dos jogos o que mais gostei foi o do Open Door
Ele é de estrategia como o outro.Gosto muito de jogos de estrategias,e esse apesar de ser simples
me chamou atenção.Voce deve seguir uma sequencia correta de abrir e fechar portas até conseguir
atingir o objeto,que é marcado com um X.O jogo é comandado pelas setas direcionais.

O Shift é legal tambem mas não gostei muito dele devido a sua interface,ao apertar o shift o jogo muda, vira de cabeça para baixo e seu boneco muda de "ambiente" alternando entre preto e branco
esse processo embaralha as vista da um sensação muito ruim,mas vai de pessoa pra pessoa.Tambem comandado pelas setas,e barra faz pular.

Um dos meus primeiros desenhos no PascaL

Esse é o desenho de um cubo, abaixo segue os comandos necessarios para o programa desenha-lo
e tambem o resultado.
Achei muito legal ter feito ele,quase chorei de emoção quando acabei, e o resultado foi positivo.

program desafio10fvmitalovilareal;
{Declarações}
begin
{Comandos}
clrscr;
ar;
ul;
pdireita(-30);
pfrente(50);
pdireita(30);
pfrente(100);
pdireita(150);
pfrente(50);
pdireita(-60);
pfrente(100);
pdireita(90);
pfrente(100);
pdireita(90);
pfrente(100);
pdireita(90);
pfrente(100);
pdireita(90);
pfrente(100);
pdireita(-120);
pfrente(50);
pdireita(-60);
pfrente(100);
pdireita(-90);
pfrente(100);
pdireita(-90);
pfrente(100);
pdireita(60);
pfrente(50);
ptras(50);
pdireita(-150);
pfrente(100);
dr;
end.
E o resultado é:


terça-feira, 23 de março de 2010

A confiabilidade desse teste não é muito grande. Isto é,
se você repetir o teste várias vezes os resultados podem
variar. No entanto, apesar de não se poder confiar nos
resultados, o teste pode ser útil para ajudá-lo a refletir
sobre suas características.

Na maior parte das vezes, após a execução desse teste,
percebe-se comumente que o indivíduo tem alguma habilidade em
cada um dos quatro componentes ( SC, SA, AA e AC),
sendo que há casos em que se tem um certo
equilíbrio e, em outros casos, ocorre algum desequilíbrio
em relação às outras três.

Pensador seqüencial concreto (SC)

São aqueles que se fundamentam na realidade e processam a
informação de uma maneira disciplinada, seqüencial (linear).

Para estes a realidade consiste naquilo que eles podem detectar
através dos seus sentidos físicos (cheiro, gosto, som, poder tocar, poder ver, etc.).

Eles percebem e relembram detalhes com facilidade, podendo
também recordar, sem esforço regras, fórmulas, datas e informações específicas.

Deixar por a "mão na massa" é uma boa maneira para que essas pessoas
aprendam (é o caso de alunos que se desenvolvem muito bem nos laboratórios
ou após terem passado por eles).

Caso alguém seja SC, então procura obter para si a maior quantidade de
detalhes, precisa planejar o tempo adequado que irá gastar no projeto no qual
vai entrar, necessita desdobrar o seu trabalho em etapas para poder,
a cada momento, verificar se está dentro do cronograma, e finalmente
deve ter um local sossegado para trabalhar sem que alguém interfira na
sua concentração.

Pensadores aleatórios concretos (AC)

São, na realidade, os experimentadores.

Assim como os SC, eles também se apoiam na realidade, porém desejam
tomar mais o enfoque de tentativa e erro.

Em vista disso, eles freqüentemente fazem os saltos quânticos intuitivos
necessários para o verdadeiro pensamento criativo.

Os AC precisam encontrar alternativas para fazer as coisas à sua moda.

Usam bastante o pensamento divergente, acreditam que é bom ver as
coisas de vários ângulos, colocam a si mesmos numa posição que os leva a
apresentar-se como voluntários para resolver problemas, estabelecem as
próprias metas, aceitam a necessidade de mudança e preferem trabalhar
em equipe com pessoas que dão valor ao pensamento divergente.

Pensadores aleatórios abstratos (AA)

Organizam a informação através da reflexão e desenvolvem-se em
ambientes não estruturados, voltados para as pessoas.

O mundo real para os aprendizes AA é aquele dos sentimentos e das emoções.

Os pensadores AA absorvem as idéias, as informações e as impressões,
e a seguir as organizam através da reflexão.

Os AA lembram-se melhor da informação quando ela é personalizada.

Eles se sentem pressionados e pouco à vontade quando são confinados
num ambiente muito estruturado.

Caso alguém seja mais AA do que as outras categorias, deve usar sua
aptidão natural para trabalhar com os outros, precisa reconhecer com que
intensidade as emoções influenciam a sua concentração, necessita construir
o seu poder de aprender através da associação, deve buscar inicialmente ter a
visão de todo o quadro e ter o cuidado de alocar tempo suficiente acabar
todo o serviço.

Quem é um típico AA geralmente não consegue estudar ou ver todo o
material que será pedido numa prova escolar antes da realização dela.

Pensador seqüencial abstrato (SA)

São aqueles que amam o mundo da teoria e o pensamento abstrato.

Eles adoram pensar em conceitos e analisar a informação.

Geralmente os SA são os que se tornam grandes filósofos ou cientistas
pesquisadores!

Para os SA é fácil fazer uma ampliação (zoom) daquilo que é importante, como,
por exemplo, expandir os pontos-chave e os detalhes significantes.

A atividade favorita dos SA é a leitura e, quando um projeto precisa ser
pesquisado, eles se comportam de forma extremamente cuidadosa e
meticulosa, pois os seus processos de pensamento são lógicos, racionais.

Geralmente os SA preferem trabalhar sozinhos a ser componentes de um grupo.

As sugestões para aqueles que são exageradamente SA é que façam mais
exercícios de lógica e busquem compreender um pouco melhor de pensamento
de outras pessoas para ter mais facilidade de compreendê-las e conviver com elas.



O meu resultado:
SC=32 SA=32 AA=48 AC=48



Algumas coisas foram bem reais mesmo, como a descrição de uma pessoa AA e AC que coincidiu bastante com meu modo de pensar