sexta-feira, 19 de junho de 2009

Introdução à Programação - Atualizada 19/06/2009 às 02:35hrs

Disciplina: Introdução à Programação - 2009.1
(Últimas atualizações: Rendimento Final)

1. Aulas
1.1. Aula 01 1.2. Aula 02 1.3. Aula 03 1.4. Aula 04 1.5. Aula 05
1.6. Aula 06 1.7. Aula 07 1.8. Aula 08 1.9. Aula 09 1.10. Aula 10
1.11. Aula 11 (Códigos fonte sobre estrutura: Turma A e Turma B)
1.12. Aula 12 1.13. Aula 13 (Coringa: sobre Arquivos)

2. Lista de Exercícios
2.1. Lista 01 2.2. Lista 02 2.3. Lista 03 2.4. Lista 04 2.5. Lista 05
2.6. Lista 06 2.7. Lista 07 2.8. Lista 08 2.9. Lista 09 2.10. Lista 10
2.10. Lista 11

3. Projetos (Considerações)
3.1. Sabrina e Loren 3.2. Mírian e Saulo 3.3. Ítalo e Ricardo 3.4. Juan e Felipe 3.5. Gabriel e Walber 3.6. Amilcar e Tayane 3.7. Pâmela e Marília 3.8. Luana e Marcus 3.9. Tainá e Heliele 3.10. George e Lucas 3.11. Rafael e Júnior 3.12. Val 3.13. Lucas 3.14. Mateus 3.15. Wans

4. Cronograma da disciplina

5.
Material Complementar
5.1. Psicotestes.
5.2. Livro texto, de Algoritmos. Apostila sobre Lógica de Programação.
5.3. VisualG: Editor e Intrepretador de Algoritmos. Apostila sobre o VisualG.
5.4. Dicas e Funções matemáticas do VisualG.
5.5. Dev-C++: Ambiente de Desenvolvimento Integrado (IDE - Integrated Development Environment) para programação de executáveis Win32, console ou GUI na linguagem C/C++.
5.6. Eclipse: IDE para desenvolvedores C/C++.
5.7. gcc: compilador gcc para windows

6. Grupo de Auto Ajuda em Programaçã0
6.1. Lista 01

7. Rendimento
7.1. I Unidade 7.2. II Unidade 7.3. III Unidade 7.4. Final

Bons estudos!!!

44 comentários:

Anônimo disse...

Valeu Leo!
Obrigado realmente precisamos de muitos bons estudos!
Muito bom o material.
Bj!:)

The Mux on the Table disse...

Luana e demais alunos,
Em breve mais uma aula estará dispnível e mais alguns links.

E viva o novo módulo de Eng. Elétrica!!!!

Marilia Jaqueline disse...

Leo, a página da aula 4 não está abrindo!!!!!

Unknown disse...

o leuuuuuuuuuuuuuuuu
esse progama é coisa de louco moss

The Mux on the Table disse...

Marilia,
O link da aula estava incorreto. Pode baixá-la agora mesmo e muuuita atenção no slide Nº 15 da Aula 03, ele será útil para a resolução da lista 02. Bons estudos.

The Mux on the Table disse...

Coisa de louco vai ser para quem deixar acumular assunto. Por isso, vamos que vamos!!!!

Marilia Jaqueline disse...

já baixei e tbm já respondi a lista quase toda!!!!!!

The Mux on the Table disse...

Marilia desponta para aparecer na TV Sudoeste.... mais alguém??? rs É isso aí Marilia.

Unknown disse...

o galera pra quem quer mais informações do prog.visualG
eu achei este link com mais informações eu achei proveitoso...
http://www.apoioinformatica.inf.br/visualg/telaprin.htm

The Mux on the Table disse...

igor disse...

oi leonardo, to com um probleminha cara, como eu do comando duas vezes na mesma linha? tipo pra aparecer isso na tela : [oi, (variavel que eu digitar), muito prazer em conhece-lo]. e outra coisinha, achei um tutorial sobre o visualg que talvez ajude o pessoal da sala. Vlw

http://www.4shared.com/file/91831266/4730dbef/198bvs0djawzibezu8qj.html

- - - - - - - - - - - - - - - - - - - -
Pessoal,

Cuidado para não inserir seus comentários na postagem errada.
Respondendo ao Igor e demais com a mesma dúvida... como fazemos para imprimir na tela o resultado de uma operação? Idem para os caracteres. Bons estudos.

Anônimo disse...

Leo me ajude no exercicio da aula3/ slide 10.
Nao estou conseguindo fazer essa parte:

*Muito prazer Leonardo,meu nome é...*
* LóGICA DE PROGRAMAÇÃO *

Como faço p o nome de Leonardo aparecer ai?
Tenho q mandar o usuario digitar de novo o nome?

Plis preciso de sua ajuda!
Obrigado!

The Mux on the Table disse...

Luana e demais alunos com a mesma dúvida: imprimir o nome (ou qualquer dado) contido numa variável.
Vejam só, a função de variável é armazenar informação na memória num determinado tipo (inteiro, real, caracter ou lógico). Para buscar essa informação armazenada na memória basta chamá-la pelo nome.
Dessa forma, quando queremos imprimir na tela um dado contido dentro de uma variável chamamos a variável dentro de um comando escreva, PORÉM, FORA das aspas duplas.
Dica: vejam como foram impressos na tela os dados coletados no slide Nº 08 da Aula 03 e apliquem da mesma forma.

Anônimo disse...

Leo Muito obrigado!
valeu mesmo ficou lindo o meu programinha!
Estou brincando muito aqui com o programinha!
rsrsrsrsrs

The Mux on the Table disse...

Pessoal,
Apaguei alguns comentários acidentalmente, portanto, reenviem suas dúvidas para eu postar e responder.
Algumas que eu lembro são:
1) Dúvida com o comando repita: não usaremos esse comando nessa primeira unidade, porrém os comando enquanto e para são equivalentes.
2) Dúvida com o comando fimse: na sintaxe do visualg ele é obrigatório ao final de cada se
3) Link de uma Apostila enviado por Igor: já existe um link da mesma apostila entre os comentários
4) Link com as fotos da turma A enviado por Lucas: por favor, mande novamente.

Unknown disse...

Leo, to com uma duvida. Eu estou querendo testar duas condições, porém elas podem ser feitas simultaneamente como uso do conectivo "ou". Para o programa ficar melhor, è preferivel que eu faça uma condição de cada vez ou testo as duas dentro de um mesmo "se"?

Ficaria mais ou menos assim:

se (condicao 1) ou (condicao 2)

ou seria melhor assim:

se (condicao1) entao
fimse
se (condicao2) entao
fimse

The Mux on the Table disse...

Juan,
Quanto menor seu programa, mais elegante e mais fácil de mantê-lo. Portanto, privilegie condições (enquanto e para) ou seleções (se e senao) que comporte o maior número de comparações. Até breve.

Anônimo disse...

Leo,presciso de ajuda para fazer o segundo exercício da lista 5.eu sei como fazer com que o programa leia a nota de todos os alunos mas nâo sei como irei somar essas notas para depois tirar a média.

The Mux on the Table disse...

Pessoal,
Sobre a dúvida de como somar notas, devemos pensar da mesma forma como fizemos para somar os números de 1 a 10 em sala de aula. Para facilitar, tire a média aritmética da soma dos 10 primeiros números naturais, em seguida a média de 10 notas digitadas por um usuário. Dessa forma, você perceberá que é a MESMA lógica.

The Mux on the Table disse...

Sobre as respostas das listas ou de um exercício em específico, volto a dizer que eu NÃO coloco nem forneço as respostas. O que faço é orientá-lo a encontrar uma resposta. Os "desesperados" que pedirem respostas aos colegas, CUIDADO!!!! Lógica não se decora. Bons estudos.

The Mux on the Table disse...

Sobre exercícios que vocês tenham feito mas após compilar o resultado esperado não é o apresentado, façam um trace, ou seja, obtenham uma matriz (primeira linha composta pela variáveis do programa) e vá atualizando passo-a-passo até o fim do programa e vejam onde está dando o erro lógico.

rafael disse...

int main ()
{
char tipo, a, b;
float c;
printf (" *****************************");
printf ("\n *Conversor de graus Celcius *");
printf ("\n *****************************\n\n\n");
printf ("Digite a tempera em Celcius: ");
scanf ("%f",&c);
printf ("Escolhaa conversao a ser feita\n");
printf ("\n(a)Farenheit\n");
printf ("\n(b)Kelvin\n ");
scanf ("%c", &tipo);
if (tipo==a)
{
printf ("\n A temperatura %.2f graus Celcius corresponde a %.2f gruas Farenheit\n\n\n\n",c , (c/5)*9+32);
}
if (tipo==b)
{
printf ("\n A temperatura %.2f graus Celcius corresponde a %.2f Kelvins\n\n\n\n",c , c+273);
}
system ("pause");
}

nao estou entendendo pq quando compilo nao esta pedindo pra eu dgitar a escolha, ele simplesmente pula para a parte do system ("pause");

The Mux on the Table disse...

Rafael e demais alunos,
A leitura de caracteres e strings em C é um problema (a depender do compilador). Como vimos no laboratório (Compilador g++, Linux) não encontraremos problemas porque o próprio compilador impede a utilização de certos comandos (gets, por exemplo). No Dev-C++ teremos que "limpar" o buffer do teclado antes da leitura do caracter ou da string senão o (Enter) será encarado como o caracter esperado. Dessa forma, utilizem o comando fflush(stdin); antes desse tipo de leitura. Observem o slide 15 da aula 08. Bons estudos.

rafael disse...

leo conseguir fazer o programa entrar na funçao if usando letra mas ai acontece um erro eskisito
por exemplo:
scanf ("%c", &tipo);
if (tipo=='a')
{
printf ("\nDigite a temperatura em gruas celscius: ");
scanf ("%f",gc);
}
printf("\n a temperatura foi %f",gc);
system ("pause");
}
ai quando eu digito um numero o programa aparece uma mensagem de erro dizendo q o programa precisa ser fechado, ja quando eu digito uma letra ele executa normalmente mas aparecendo o valor 0.0000
ja usei o fflush(stdin); em diversos lugares e nao adianto

The Mux on the Table disse...

Rafael e demais,
Ao enviarem um código-fonte para mim, envio completamente para eu precisar melhor o tipo de erro. No caso do código acima enviado por Rafael, eu desconfio (justamente pelo código está incompleto), que seja p & (E Comercial) que ele esquecer de digitar no segundo scanf. AH!!!! Envie, sempre que poder, um e-mail pessoal para que eu possa responder as dúvidas. Um abraço.

Pâmela disse...

Leo, eu gostaria que você colocasse no seu blog um c++ versão para Ubuntu.

The Mux on the Table disse...

Ok Pâmela,
Boa iniciativa. Veja só, no Ubuntu tenho usado o editor KDevelop e o compilador g++ Dá para baixar esse pacotes pelo gerenciador de pacotes Synaptic.
http://www.cs.bham.ac.uk/research/projects/poplog/ubuntu/djb/howto_poplog_1_1_synaptic.jpg
Abraço e bom feriado.

Unknown disse...

Leo...como faz pra elevar um numero a outro na linguagem c?

The Mux on the Table disse...

Jorge,
Funções matemáticas em C fazem parte de uma biblioteca chamada math.h
Dê um olhada no slide 24 do material a seguir:
http://www.inf.ufrgs.br/~deise/unipampa/IntroducaoProgramacaoC.pdf
Bons estudos

Renata disse...

oi leo, desejo que esteja bem.acabei que conhecer o blog e estou encantada com as dicas e exercicios.estou no 1º periodo de sistemas de informacao,cheia de duvidas e com uma enorme fome de aprender.mesmo nao sendo da mesma faculdade que o grupo, quero acompanhar o blog e divulga-lo para os demais cologas do meu curso.parabens e sucesso!!

The Mux on the Table disse...

Renata,
Faço meu trabalho com dedicação e satisfação, sobretudo, quando sei que estou contribuindo para o aprendizado e crescimento de uma pessoa.
Muito obrigado pelo elogio, porém, ficarei muito mais satisfeito ao vê-la aprovada em programação rs Bons estudos.

Anônimo disse...

Olá sou aluno da UFU, faço Sistemas de Informação e achei muito interessante esse metodo que vc utiliza para ensinar.
parabéns!

The Mux on the Table disse...

Pessoal da UFU,
Muito bom receber a visita de vocês no meu blog. Obrigado por reconhecerem meu método de ensino, porém, confesso que ainda não encontrei a "fórmula" para diminuir a evasão e reprovação das turmas de Programação nos semestres iniciais. Um dia chegarei lá. Um abraço e bons estudos.

Pâmela disse...

Leo, tô te mandandonovamente que no outro esqueci de bolquear....mas agora não to conseguindo de jeito nenhum...kakkk!!


int main()
{
int quant=0, idade, cont=0, pes, pessoa=10;
char alt, peso, altura=0;

for(pes=0;pessoa!=0;pes++, pessoa--)
{
do
printf("Este prog...\n\n");
printf("Informe a idade da pessoa %d: \n", pes+1);
scanf("%d",&idade);
printf("Informe a altura da pessoa %d: \n", pes+1);
scanf("%d",&alt);
printf("Informe o peso da pessoa %d: \n", pes+1);
fflush(stdin);
scanf("%d",&peso);
while((alt<=0)&&(idade<0)&&(peso<=0))

if(idade>50)
cont++;
if((idade>=10)&&(idade<=20))
{
quant++;
altura+=alt;
}

}
printf("Dentre as 10 pessoas, %d tem idade superior a 50 anos\n", cont);
printf("A media das alturas das pessoas com idade entre 10 e 20 annos eh:\n %.2f",altura/quant);
system ("pause");
return 0;
}

Pâmela disse...

consertei a leitura de peso e altura para %f, mas a continua dando errado!!

Unknown disse...

Leu.
sobre as aero naves, o progama ja tem q ter na memoria elas ja cadastradas ou tem q ter um campo para cadastra las?
Ralph

The Mux on the Table disse...

Pessoal,
Pâmela enviou uma dúvida que consiste em divisão de números inteiros, supondo:

- - - - - - - - - - - - - - - - - - - -
int altura, quantidade;

printf("A média de alturas é: %d", altura/quantidade");
- - - - - - - - - - - - - - - - - - - -

Na linguagem C existe o conceito de "sobrecarga de operadores e de funções" (conforme expliquei em sala de aula). Dessa forma, o operador de divisão receberá dois inteiros e retornará o resultado em INTEIRO.
Caso você declare as variáveis do tipo "ponto flutuante"(float ou double) então o operador de divisão retornará o resultado em ponto flutuante.
Bons estudos.

The Mux on the Table disse...

Pâmela,
Não basta apenas ler com %f, uma das variáves deve ser declaradas do tipo ponto flutuante. Até breve.

The Mux on the Table disse...

Lucas Ralph e demais,
É esperado que o programa do projeto seja capaz de cadastrar novos cliente, filmes, livros, carros, etc, etc (dependendo da especificidade de cada projeto).
Para vocês não precisarem cadastrar novos dados todo momento que forem rodar o programa segue um código simples onde eu demonstro a inicialização de estruturas, vejam:

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

struct pessoa
{
char nome[30];
char cpf[15];
};

int main()
{
struct pessoa p[10] = {{"Leonardo B Campos", "111.222.333-44"}, {"Maria José", "222.333.444-55"}};
return 0;
}
- - - - - - - - - - - - - - - - - -

Nesse caso eu inicializo as duas primeiras posições da minha estrutura pessoa.
Esse processo será muuuito útil para vocês testarem suas buscas (não precisarão cadastrar dados e mais dados apenas para testar as funções de busca).
Bons estudos.

The Mux on the Table disse...

Pessoal,
Vejam a dúvida do nosso colega Ricardo:

- - - - - - - - - - - - - -
O leo, é ricardo do 1 semetre, vem cá vc sabe como eu posso transformar datas para segundos, ou algumas função que faça isso leo? se vc souber ou tiver algum material mande para meu e-mail por favor leo, o projeto tá muito doido!!!! abração e fique com Deus!!!
- - - - - - - - - - - - - -

Resolvi publicar esse comentário para auxiliar àqueles que necessitam de funções para manipular o tempo.
Essas funções estão na biblioteca time.h
Vejam um código simples que retorna os segundos decorridos desde 00:00 de 1º de janeiro de 1970:

- - - - - - - - - - - - - -
#include< stdio.h> //retire o espaço após o sinal de menor para compilar
#include< time.h>

int main()
{
time_t Segundos;
printf("%d", time(NULL));
return 0;
}
- - - - - - - - - - - - - -

Pesquisei alguns materiais interessantes na Internet, vejam:
http://zz2kzq.site90.com/CursoHtml/Modulo03/Modulo003Aula008.htm

Até mais e Bons estudos

Engenharia disse...

Oi Leo!
Duvida:
Como faço para encontrar o menor elemento da matriz?
Sei q existe uma função , mais n me lembro qual.

Unknown disse...

leo eu copiei exatamente igual o codigo da aula extra para salvar aquivo, ele compila, roda, quando eu digito um nome sem espaço ele salva normamente mas s colocar espaço aparece uns quadrinhos no arkivo txt

Pâmela disse...

Oi Leo!!!
E aí vc vai dar aula p mim neste semestre?
saudades...bjxus!!!!

The Mux on the Table disse...

Pessoal,
Para encontrar o menor elemento em uma matriz basta percorrer todas as suas linhas e colunas, guardando o menor elemento numa variável sempre que o menor valor for alcançado.
Dica: laço dentro de laço facilita essa abordagem pois permite que todas as colunas de uma única linha sejam percorridas, em seguida, passa para a próxima linha.

The Mux on the Table disse...

Pâmela,
Já estão definidas as disciplinas que ministrarei em 2009.2, são elas:

- Circuitos Lógicos
- Arquitetura de Computadores
- Sistemas de Tempo Real

Portanto, infelizmente, não lecionarei disciplina(s) para os dois primeiros semestres. Aproveite a metodologia e didática do novo professor, as diferenças também tendem a acrescentar. Um abraço.