Nesse segundo videocast mostro um pouco mais sobre a Continuação de Ponteiros, Ponteiros de Ponteiros, Passagem de Valor por referencia e algo sobre o argc, argv[].
Preparem-se. 30 minutos
Nesse segundo videocast mostro um pouco mais sobre a Continuação de Ponteiros, Ponteiros de Ponteiros, Passagem de Valor por referencia e algo sobre o argc, argv[].
Preparem-se. 30 minutos
O exemplo abaixo mostra de maneira clara como um programa de computador pode entrar em um loop infinito, apesar de ser apenas uma piada… isso acontece!
Piadex:
Para quem não conhece o conceito de loop, aqui fica claro o que
significa quando se diz que um programa de computador “entrou em
looping”:
O diretor disse à secretária:
- Vamos viajar para o exterior por uma semana, para um Seminário. Faça os preparativos da viagem!
A secretária faz uma chamada para o marido:
- Vou viajar para o exterior com o diretor por uma semana. Cuide-se, querido.
O marido liga para a amante:
- Minha mulher vai viajar para o exterior por uma semana, então nós vamos poder passar a semana juntos, meu docinho!
A amante liga para um menino a quem dá aulas particulares:
- Tenho muito trabalho, na próxima semana não precisa vir às aulas.
O menino liga para o seu avô:
- Vô, na próxima semana não tenho aulas, a minha professora estará ocupada. Vamos passar a semana juntos?!
O avô (que é o diretor desta história) liga para a secretária:
- Vou passar a próxima semana com o meu neto, então não vou participar daquele Seminário. Pode cancelar a viagem.
A secretária liga para o marido:
- O diretor da empresa mudou de idéia e acabou cancelando a viagem.
O marido liga para a amante:
- Não poderemos passar a próxima semana juntos, a viagem da minha mulher foi cancelada.
A amante liga para o menino das aulas particulares:
- Mudança de planos: esta semana vamos ter aulas como normalmente.
O menino liga para o avô:
- Vô, a minha professora disse que esta semana tenho aulas. Desculpe-me, não vai dar para fazer-lhe companhia.
O avô liga para a sua secretária:
- Meu neto acabou de dizer que não vai poder ficar comigo essa semana.
Continue com os preparativos da viagem ao seminário!
Dessa maneira fica mais fácil entender o que é um loop
Dica enviada por Ricardo

Acabo de achar uma lista grande com diversos e-books, todos de Programação, em inglês, vale a visita!!!
Varias linguagens de programação, desde o mais simples, C e Bash até algumas coisas “estranhas” como Haskel, Objective-C (mac) e x86 assembly.
Alguns títulos interesantes:
Site: Stack Overflow – List of Freely avalable programming books
“Fica a dica
”
Obs: Ganha um doce quem desvendar o que está escrito no Outdoor!
Abaixo um pdf de fluxogramas, uma ferramenta poderosa para o aprendizado e a compreensão de como “as coisas” (programas) funcionam dentro da CPU do computador.
O livro abaixo é feito para se trabalhar com microcontroladores, ou seja, para o pessoal de eletrônica, porém a lógica e os fluxos são os mesmos, a leitura dessas páginas com certeza ajudaram a compreender melhor como os programas são executados.
Aqui vai a indicação do livro do Gilvan Vilarim, futuramente criarei uma sessão com dicas de leitura, de momento, segue abaixo o livro Algoritmos – Programação para Iniciantes
Não tenho o livro em mãos, mais pelo que pesquisei na internet, são ótimos livros!
Ola pessoas, gostaria de apresentar a vocês um bate-papo sobre as antigüidades da informática, gravados no formato de podcast(conhecem podcast???) aonde Eu e o Guto conversamos sobre a informática de antigamente, até chegando aos dias de hoje!
Para os que não viveram a época dos XT, Cartão perfurado e outras coisas, vale a pena, para os que conheceram tudo isso… fica como nostalgia.
Espero que gostem.
O Link para quem se interessar, Podser Podcast
Sistema de Controle de Livros
Um aluno do Curso de TADS resolveu ajudar seus familiares e desenvolver um sistema para fazer o controle de livros de sua biblioteca particular, antes de começar ele fez um levantamento do que seria necessário ter no sistema, o encontrado foi:
Cadastrar livros
- Numero do Registro
- Título
- Autor
- Numero da estante
- Numero da prateleira
Tendo essa estrutura, o aluno colocou como características para que o sistema tornasse utilizável, são elas:
- Um menu de opções aonde seria escolhido as operações disponíveis:
Abaixo um programa simples para mostrar a resolução do problema proposto, utilizando menus, arrays e funções:
#include <stdio.h>
#define MAX 10
// Variaveis Globais
struct estante {
int estante;
int prateleira;
};
struct livro {
int reg;
char titulo[80];
char autor[100];
struct estante posicao;
};
struct livro livros[MAX];
int livre; // Variavel auxiliar, responsavel por saber quantos livros ja foram cadastrados
int menu(void) {
// variaveis locais
int retorno;
// Menu
printf("\n\n\n");
printf("****************************************************\n");
printf("** Controle de Livros \n");
printf("****************************************************\n");
printf("** Escolha a opcao desejada: \n");
printf("** \n");
printf("** 1 ) Cadastrar uma obra \n");
printf("** 2 ) Consultar uma obra \n");
printf("** 3 ) Listar todas as obras \n");
printf("** 0 ) SAIR \n");
printf("** \n");
printf("** Entre com a opcao desejada : ");
scanf("%d",&retorno);
return retorno;
}
void cadastrar(void) {
printf("\n\n\n");
printf("****************************************************\n");
printf("** CADASTRO DE OBRAS (%d/%d) \n",livre,MAX);
printf("****************************************************\n");
printf("**\n");
if (livre != MAX) {
printf("** Numero do Registro...: "); scanf("%d",&livros[livre].reg);
fgetc(stdin); // Limpando o buffer de teclado
printf("** Titulo da Obra.......: "); fgets(livros[livre].titulo, 80, stdin);
printf("** Autor da Obra........: "); fgets(livros[livre].autor, 100, stdin);
printf("** Numero da Estante....: "); scanf("%d",&livros[livre].posicao.estante);
printf("** Numero da Prateleira.: "); scanf("%d",&livros[livre].posicao.prateleira);
printf("**\n");
printf("**\n");
printf("** Registro %d cadastrado com sucesso! ",livros[livre].reg);
livre++;
} else {
printf("** ESPACO INSUFICIENTE \n");
}
}
void listar_todos(int registro) {
int i;
int imprime;
int controle = 0;
printf("\n\n\n");
printf("****************************************************\n");
printf("** Listando OBRAS \n");
printf("****************************************************\n");
printf("**\n");
if(livre > 0) {
for(i = 0; i < livre; i++) {
if(registro != 0) {
imprime = (livros[i].reg == registro);
}
if(imprime) {
printf("** Numero do Registro...: %d\n",livros[i].reg);
printf("** Titulo da Obra.......: %s",livros[i].titulo);
printf("** Autor da Obra........: %s",livros[i].autor);
printf("** Numero da Estante....: %d\n",livros[i].posicao.estante);
printf("** Numero da Prateleira.: %d\n",livros[i].posicao.prateleira);
printf("**\n");
controle++;
}
}
if((registro != 0) && (controle == 0))
printf("** REGISTRO NAO ENCONTRADO \n");
} else {
printf("** ESTANTES VAZIAS \n");
}
printf("\n\n");
}
void lista_especifica(void) {
int reg;
printf("\n\n\n");
printf("****************************************************\n");
printf("** Listando OBRAS \n");
printf("****************************************************\n");
printf("**\n");
printf("** Entre com o numero do registro....: "); scanf("%d",®);
listar_todos(reg);
}
int main (void) {
// variaveis locais
int opcao = 1;
// Inicializacao das variaveis
livre = 0;
while(opcao != 0) {
opcao = menu();
switch(opcao) {
case 1 : {
// chamada da funcao cadastrar obra
cadastrar();
break;
}
case 2 : {
// chamada da funcao consultar obra
lista_especifica();
break;
}
case 3 : {
// chamada da funcao listar todos
listar_todos(0);
break;
}
case 0 : {
printf("\n\n");
printf("** Obrigado por utilizar o sistema... \n\n\n");
opcao = 0;
break;
} // Fim case
} // Fim Switch
} // Fim While
return 0;
} // Fim main
Só pra fazer a apresentação, pretendo disponibilizar nesse espaço, informações úteis sobre as disciplinas que estou lecionando.
Para começar – Programação Estruturada II, linguagem C.
#include <stdio.h>
void main(int argc, char *argv[]) {
printf("Bem vindos!!!");
}