ÍNDICE
Parte 1 - PREFÁCIL
Parte 2 - PROGRAMAÇÃO/ALGORÍTIMO
Parte 3 - LÓGICA
PARTE 1 - PREFÁCIL
Este é o primeiro de vários tutoriais que estarei postando no blog e que estarão destinados a auxiliar os iniciantes no estudo de programação em linguagem C. Tratarei os assuntos do modo mais simples possível, pois sei que apesar de existirem vários outros tutoriais, apostilas, etc, na internet, a maioria trata o tema de modo as vezes simples, porém muito resumido ou de modo muito complexo dificultando o seu entendimento. A nossa proposta é passar uma informação usando um vocabulário onde até mesmo aquele que estiver tendo o primeiro contato com a linguagem C através destes tutorias possa entender facilmente. Portanto, as informações aqui postadas são simples e completas.
DICAS
1 - Programar em linguagem C exige bastante raciocínio lógico. Portanto, antes de iniciar o estudo dessa linguagem eu recomendo que você procure um bom material, pode ser na internet mesmo, sobre lógica de programação, pois o estudo da lógica aborda temas que estão presentes em estudos de várias outras linguagens, inclusive a linguagem C. Portanto, adquiram materiais de lógica de programação e, de prefêrencia, aqueles baseados na linguagem C - o alvo desse nosso estudo.
2 - Para ajudar a desenvolver ainda mais o raciocínio lógico, recomendo que você reserve um tempo do seu dia para ler livro ou apostila sobre matemática, pelo mesmo o básico. A matemática é bastante lógica, portanto, faça dela sua companheira inseparável. Ela te ajudará bastante na hora de programar. Mas você já deve ter pensado: "Mas eu vou estudar o quê sobre matemática?".
Resposta: Para início, procure explorar bastante o conceitos básicos de matemática como: Sistemas de Numeração e suas Operações, Equação do Primeiro Grau (esta costuma aparecer bastante nos programas básicos de C), Funcão do Primeiro Grau.
3 - Seja bastante paciente na hora de programar. Se por acaso você perceber que a coisa está difícil e você não sabe nem por onde começar a escrever determinado código, relaxa, faça uma pausa para tomar um suco, lanche, banho, vá levar o seu gato, cachorro pra passear, mas não desista do código, continue tentando, procure orientações de outras pessoas, profissionais do ramo, entre em salas de bate-papo, fóruns. No orkut existem comunidades de programadores em C.Pesquise em sites de busca como www.google.com.br, http://br.yahoo.com, http://www.live.com/?scope=web&mkt=pt-BR, etc! Pesquise! Pesquise! Uma hora você consegue.
Só pra você ter uma idéia: No início dos meus estudos de programação em C, demorei 3 meses para conseguir escrever um programa que informasse se um determinado número inteiro que eu digitava no teclado era primo ou não. Foi complicado, difícil, até mesmo cheguei a pensar que era impossível escrever um código desse. Porém, como eu disse, depois de 3 meses tentando, eu me lembro que estava no meu trabalho fazendo uma atividade que não tinha nada a ver com programação e, derrepente me veio a idéia na cabeça de como seria o tal código. Imediatamente, peguei um lápis e papel e escrevi aquilo. Mais tarde escrevi o código que tinha anotado no papel no meu editor de código e funcionou, o programa foi gerado, ou seja, a ideia que eu havia tido num ambiente totalmente fora do mundo da programação estava certa, era aquilo mesmo.
Então lembre-se: "Você é brasileiro e não desiste nunca!"
4 - Não espere que alguém peça! Faça você mesmo!
Construa seus próprios programas, definindo um propósito para cada um deles. Um programa sempre servirá pra fazer alguma coisa ou várias coisas. É necessário que você tenha conciência do quê está escrevendo e pra quê está escrevendo. Para quê seu programa vai servir? E como você vai escrevê-lo? Isso será algo a se pensar. Estude programas escritos por outros autores, tente entender a lógica que o autor usou.
5 - Acredite sempre em você, no seu potencial. Não se deixe levar por sugestões negativas, mas faça delas um insentivo desafiador para você conseguir seu objetivo. Os nomes que fizeram história conseguiram porque tentaram e, mesmo fracos, persistiram. Portanto, escreva seu nome na História, dê um novo significado a ela!
Agora, vamos ao que interessa...
Quero voltar ao índice
PARTE 2 - PROGRAMAÇÃO/ALGORÍTIMO
Antes de começarmos falar sobre programação em linguagem C, vamos nos concentrar em conhecer alguns princípios básicos da PROGRAMAÇÃO GERAL, ou seja, a programação computacional e não computacional. Esta também será uma breve introdução em lógica de programação.
Quantas vezes você precisou se programar para realizar determinada atividade?
Resposta: Talvés na maioria das vezes. Mas posso dizer-lhe que nas demais vezes apesar de você não ter se programado, acabou seguindo uma programação para completar a atividade ou alcançar o objetivo.
Será que se você não tivesse programada a realização da tarefa ou seguido uma programação, o resultado obtido sairia conforme esperado?
Reposta: Não, pois o resultado será correto somente se seguimos a programação correta. Consequentemente o resultado errado é fruto de uma programação errada.
“ Se houve resultado correto ou não, então houve programação correta ou não”
Você deve ter ficado todo confuso agora, mas fique tranqüilo, pois quando terminar de ler este capítulo, você descobrirá que praticamente todas as atividades que conseguimos executar por completo é conseqüência de uma programação que seguimos, conscientes ou não, e isso será bastante lógico.
Mais adiante buscaremos entender o que é um Programa de Computador e veremos que é algo muito simples. Mas por enquanto esqueceremos o computador.
Bom, vamos pensar um pouco na palavra “PROGRAMA”.
Então o que é um PROGRAMA?
A grosso modo, podemos notar que o termo “PROGRAMA” diz respeito a alguma COISA que está ou foi programada para acontecer de terminado jeito, ou ainda, um fato que deve ocorrer obedecendo uma sequência de ETAPAS ou INSTRUÇÕES (entenda instrução aqui como sendo um comando, ordem ou ação). Então, podemos afirmar que um PROGRAMA é divido em ETAPAS que obedecem uma ordem de execução. As etapas, por sua vez, podem ser dividas em sub-etapas. Uma etapa de um programa é formada por uma ou mais INSTRUÇÕES também dispostas em ordem de execução. Vejamos o esquema abaixo para facilitar nosso entendimento. Este esquema pode ilustrar o funcionamento básico de um programa qualquer, seja ele de computador ou não.
INÍCIO DO PROGRAMA
ETAPA 1
INTRUÇÃO 1
INSTRUÇÃO 2
FIM DA ETAPA 1
ETAPA 2
INTRUÇÃO 3
FIM DA ETAPA 2
ETAPA N
INTRUÇÃO 4
INSTRUÇÃO N
FIM DA ETAPA N
FIM DO PROGRAMA
Podemos observar no esquema acima que para o programa ser executado corretamente ou conforme o programado ele deve seguir cada etapa na ordem em que ela aparece, ou seja, a etapa 2 não pode ser executada antes da etapa 1, ou ainda, para se chegar à etapa 2 é necessário antes passar pela etapa 1, e assim por diante. Isso nos leva a afirmar que não se pode executar a instrução 4 sem antes terem sido executadas as instruções 1, 2 e 3, nessa ordem. Quando a instrução N for executada, o programa terá terminado e o seu objetivo alcançado. Na realidade, o que está sendo executado são apenas as instruções 1, 2, 3, 4 e N, respectivamente. Por essa razão, vamos chamar esse modelo de “PROGRAMAÇÃO SEQUENCIAL”. Aí vem então a pergunta: Se apenas as instruções são executadas, porque o programa foi dividido em etapas? Pra quê servem as etapas?
Vou responder da seguinte forma: Se você viu com atenção o esquema apresentado, deve ter notado que etapa nada mais que um agrupamento formado por uma ou mais instruções que aparecem em sequência. Então, não há necessidade de se dividir o programa em etapas, mas dependendo da complexidade do programa, dividi-lo em etapas será importante por algumas razões, como por exemplo:
Motivo 1 – Será mais fácil compreendê-lo, ou seja, fica mais fácil entender o que está acontecendo num determinado trecho do programa e também você consegue ter uma visão geral de todo o programa, bem como de seu funcionamento;
Motivo 2 – Outras pessoas que lerem seu programa ou aquelas que participarem dele também terão uma maior facilidade de compreendê-lo;
Motivo 3 – Existem N maneiras de se escrever um mesmo programa, por isso a importância de se organizar bem as idéias em etapas;
Motivo 4 – Se o programa é dividido em etapas, fica possível notar com bastante clareza o início, meio e fim do programa.
Enfim, poderíamos citar vários outros motivos da importância de se dividir um programa em etapas.Citamos aqui alguns dos mais importantes. Então podemos definir uma etapa de um programa da seguinte forma:
“ETAPA é cada parte de um programa que representa uma dentre todas as tarefas completas daquele programa.”
Assim, fica fácil observar que cada etapa, com exceção da primeira, é sequência da etapa anterior. Ex: a etapa 2 é continuação da etapa 1 e, a última etapa é continuação da penúltima etapa. Logo, se um programa for dividido em duas etapas, por exemplo, o programa terá sido executado por completo somente se a primeira e a segunda etapas forem executadas também por completo. Aparece aqui a necessidade de identificarmos onde começa e onde termina cada etapa do programa.
Por fim, vamos definir programa da seguinte forma:
“Um PROGRAMA é uma sequencia de passos bem definidos que obedecem uma ordem lógica de execução a fim de alcançar um objetivo”. Então um PROGRAMA descreve passo a passo como o objetivo deve ser alcançado.
Os adeptos da programação de computador preferem chamar isso de ALGORÍTIMO. Alguns até dizem que ALGORÍTIMO é provado enquanto que o PROGRAMA é testado. É como se o primeiro fosse a teoria e o segundo a aplicação dessa teoria, ou seja, teoria e tecnologia aplicada. Eu prefiro não fazer distinção entre esses dois termos, pois como eu disse no início, usarei uma linguagem simples, de fácil entendimento. Mas deixo aí essa observação que não está errada. Assim, se em algum momento deste nosso estudo aparecer a palavra ALGORÍTMO, você não deverá estranhar, pois já lhe será familiar. Para isto basta saber que o algoritmo descreverá o programa em linguagem de fácil entendimento por nós, os seres humanos, enquanto que o programa será interpretado em linguagem de máquina .
“O programador desenvolve algorítimos, o computador executa programas”
Veja abaixo alguns exemplos de atividades, da nossa vida real, que podem ser executadas seguindo uma programação ou algorítmo:
• O casamento entre um homem e uma mulher
• A construção de uma casa
• A exibição de um programa de TV
• A decolagem de um avião
• Um campeonato esportivo
• O funcionamento da hélice de um helicóptero
• A troca de uma lâmpada ou botijão de gás
• O preparo de um bolo ou torta
• Somar dois números
• Um manual de instruções para instalar um equipamento de TV a cabo
Pra que servem os programas?
De acordo com a definição de programa que foi dada anteriormente, observe que para cada um dos eventos acima apresentados existirá sempre um objetivo a ser alcançado. Assim:
- O casamento tem por objetivo unir duas pessoas;
- A construção de uma casa tem por objetivo preparar uma morada;
- A decolagem de um avião tem por objetivo fazer o avião flutuar no ar ou pelo espaço
- Um campeonato esportivo tem por objetivo eleger um campeão, e assim por diante.
Com os programas de computador não é diferente, cada um terá um ou mais objetivos a alcançar. Eu vou explicar isso melhor.
Primeiro nós definimos o nosso objetivo, depois procuramos um meio de alcançá-lo. O objetivo que desejamos acaba se tornando um problema a ser resolvido. Aquilo que faremos para atingir nosso objetivo será o programa a ser seguido. Então, respondendo à pergunta anterior, podemos afirmar que os programas servem para resolver problemas ou alcançar objetivos.
Qual a forma correta de se programar?
A forma correta de programação será aquela que fará com que o objetivo esperado seja alcançado. Um mesmo objetivo pode ser alcançado de N formas diferentes, ou seja, para um mesmo problema podem existir N soluções. Isso nos leva a afirmar que não existe um modo único de programação. Eu posso ter uma ou mais soluções para um mesmo problema. Por exemplo, como podemos obter a soma dos números 5 e 3?
1) Posso fazer 5 + 3, com apenas uma instrução, acrescentando 5 a 3, ou então
2) 3 + 5 = 8 (uma instrução de soma, acrescentando 3 a 5)
3) 3 + 2 + 3 = 8 (duas instruções de soma)
4) 5 + 1 + 1 + 1 = 8 (três instruções de soma)
5) Etc;
No exemplo acima, em cada caso cada operação de soma “+” é uma instrução a ser executada. Veja que a princípio o nosso objetivo era achar um meio de obter a soma dos números 3 e 5. Nos itens de 1 a 4 vimos alguns exemplos de como podemos alcançar esse objetivo, ou seja, são soluções diferentes, mas que nos levam ao mesmo objetivo final - o resultado 8. Agora o que devemos levar em consideração é que existirão sim modos mais eficientes, eficazes de se programar, isto é, programas mais fáceis de serem executados por nos trazer o resultado com maior rapidez e, isso é importante para o computador, pois dependendo do meu hardware e software, quanto mais instruções meu programa tiver, mais tempo levará para ser executado.
Vejamos um exemplo prático detalhado que se encaixa perfeitamente no esquema de programação acima apresentado. Antes, cabe aqui uma observação – O esquema apresentado acima é apenas um modelo de programação simples que nós chamamos de programação sequencial. Existem outros modelos de programação, mas mesmo assim esses outros modelos poderão se encaixar neste. Mais adiante em nosso estudo veremos que podem ocorrer situações em que uma ou mais etapas tenham que ser executadas mais de uma vez em um mesmo programa.
Tomamos no exemplo abaixo um fato do nosso cotidiano, não é exatamente de programação de computador, porém as idéias aplicadas são bastante semelhantes e isso nos ajudará a compreender melhor quando falarmos de programação de computador.
Objetivo doprograma: Construir uma casa
Pergunta: Qual o programa a ser seguido?
Exemplo
O pedreiro João e seu inexperiente ajudante, o jovem Vinícius, precisam construir uma casa. O terreno já está pronto para a construção. João possui em suas mãos o desenho que mostra como a casa deverá ser. João olha para Vinícius e diz:
- Temos aqui um problema a ser resolvido. Precisamos construir esta casa, só que não sei por onde começar, pois...Vinícius não deixa João terminar o diálogo e vai logo dando a seguinte sugestão:
- Porque não iniciamos levantando as paredes?
João entendendo a inexperiência de Vinícius lhe diz:
- Deixa pra lá! Venha cá que vou lhe explicar como a casa será construída. Faremos assim:
1) Demarcaremos o terreno usando cordas, definindo assim a quantidade e medida de cada cômodo que a casa terá;
2) Cavaremos os alicerces;
3) Levantaremos as paredes deixando os espaçamentos para as janelas e portas;
4) Construiremos o teto antes do piso, pois assim evitaremos problemas com possível dia chuvoso;
5) Colocaremos as janelas e portas para permitir a circulação de ar na casa e iluminação;
6) A partir daqui, como trabalharemos também à noite, implantaremos o sistema de energia elétrica;
7) Colocaremos o piso;
8) E por fim, pintaremos as paredes, portas e janelas.
- Puxa! Assim ficou fácil entender a sua idéia – Disse Vinícius, ancioso.
João, tratou de alertar o garoto dizendo-lhe:
- Olha, não digo que vai ser simples, pois este tipo de trabalho é fácil em alguns pontos e bastante puxado em outros. Então o item 1 chamaremos de ETAPA inicial, e será bem simples. Porém, do item 2 ao item 7, será a ETAPA de trabalho mais duro, pois exigirá bastante atenção e esforço. O item 8 será a etapa de acabamento, que é razoável.
Depois de ler esta breve historinha, você, leitor, já deve ter entendido bastante coisa sobre o que dissemos até aqui. Neste exemplo nós vimos que para construir a casa, João teve que adotar um critério, ou seja, ele teve que seguir um programa de construção. Então o objetivo que João desejava alcançar era “Construir a casa” e o programa a ser seguido para isto está nos passos de 1 até 8. Claro que a construção de uma casa envolve muitas outras atividades, como: aquisição de materiais, mistura de cimento e areia, encanamento, etc; porém nós destacamos os fatos mais fáceis de serem entendidos, pois nossa intenção é entendermos que para qualquer atividade ser realizada completamente, será necessário seguir um programa. O que João disse a Vinícius no final foi importante, pois fez com que Vinícius tivesse um melhor entendimento de todo o processo, pois na cabeça de Vinícius o programa ficou dividido em fase tranquila e fase pesada, com isso na temporada de trabalhado pesado, Vinícius precisará descansar mais, se alimentar melhor, pois será desgastante.
Quero voltar ao índice
PARTE 3 - LÓGICA
Seria possível construir a casa iniciando pelo teto?
É LÓGICO que não, pois para construir o teto é necessário antes levantar a sua base de sustentação que no exemplo anterior são as paredes. Veja que dentro deste programa cada atividade é colocada em ordem de execução por razões lógicas, adotadas por João:
• Demarcação e medição antes da escavação dos alicerces para evitar erros;
• Depois, escavação dos alicerces para firmar as paredes;
• Paredes para firmar o teto e abrir espaços para as janelas e portas;
• Portas e Janelas para evitar invasão de intrusos, e por aí vai...
Lógica aqui tem haver com o tipo de caminho traçado para conseguir alcançar o objetivo. Se fosse outro pedreiro trabalhando na construção desta casa, certamente ele teria seguido outro programa, pois cada pessoa tem um modo diferente de pensar, mas mesmo assim algumas coisas estarão sempre coincidindo. Você com certeza, em algum momento quando estava fazendo algum tipo de atividade, já foi interrompido por alguém que lhe disse:
“Olha, eu conheço um jeito mais fácil”
ou então:
“Puxa! Eu cresci fazendo de um jeito mais complicado e estou vendo que do modo como você faz é mais simples.”
Isso acontece, porque, como eu já disse – podem existir N formas de se resolver um mesmo problema. E lógica é “pensar corretamente para se chegar ao objetivo”. Então, se alguém mandar você usar a lógica, então esta pessoa está pedindo para você usar a cabeça, pensar num modo correto de resolver o problema.
Na introdução deste tutorial eu dei algumas dicas para você desenvolver seu raciocínio lógico. Reforçando, digo-lhe que treine bastante, pois vais precisar usar lógica daqui pra frente. Existem operações lógicas que envolvem os chamados operadores lógicos. Pesquise sobre isso. O estudo da lógica lhe trará mais conhecimentos sobre tudo que dissemos até aqui.
Dica: Pesquise sobre lógica de programação e busque entender a tabela verdade. No site http://youtube.com/ existe uma série de vídeos sobre este assunto. Pesquise!
...continua...
Quero voltar ao índice
CAIXA DE PESQUISA

Pesquisa personalizada
