Linguagem C - Introdução

Breve Histórico da Linguagem C

A Linguagem C foi desenvolvida nos laboratórios BELL, da At&t, em 1972 por Denis M. Ritchie ( que desenvolveu uma versão do UNIX com a linguagem ) e publicada com a co-autoria de Brian W. Kernighan.

Dennis Ritchie 1998

Seu livro sobre a linguagem C entitulado “The C Programming Language (A Línguagem de Programação C) é indispensável para os profissionais da ciencia da computação e programação de computadores.
A linguagem C permite ao desenvolvedor criar programas de computador através de um compilador. Neste estudo abordaremos o DEV C, software livre para desenvolvedores da linguagem. Para download e instalação siga as instruções do distribuidor no link : http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe

Estrutura

Na linguagem C temos a seguinte estrutura:



Tipos de Dados em C

A linguagem C compreende os tipos de dados:

inteiros –> int  ( de -32.768 até 32.767 )
reais –> float ( de 3,4 e -38 até 3,4 e 38 )
caractere — > char ou String ( uma única letra ou um conjunto )

A linguagem C não compreende o tipo de dado lógico BOOLEAN!

Variáveis

Segue o mesmo padrão de nomenclatura de portugol e outras linguagens como delphi, Java entre outras. Isto é, deve ser um local previamente identificado e rotulado com um tipo para armazenamento de dados.

 

Operadores Aritméticos

São símbolos para processamentos matemáticos.

%             –>                resto de divisão
/               –>                divisão
*               –>                multiplicação
+              –>                adição
-               –>                subtração
=              –>                atribuição

Pois bem, sabemos o básico para irmos ao compilador DEV C, digitar nosso primeiro programa em C. veja a figura:



Esse é o modo que deve estar seu programa. Agora vamos aos comentários de cada linha.

linha 1: #include<stdio.h> : a instrução #include é reservada, isto é, deve estar deste modo para inserir cabeçalhos no programa e, neste caso insere o cabeçalho <stdio.h> que significa “standard imput output. header”, cabeçalho de entrada e saída no sistema, necessário para lermos os valores e exibilos no monitor para o usuário. Aqui estão os comandos como scanf e printf

linha 2: #include<conio.h>: neste caso, significa “configuration imput output. header”, cabeçalho de configuração de entrada e saída de sistema. você deve ter percebido que os cabeçalhos estão entre os símbolos de < (menor) e > (maior), isto significa que o compilador irá procurar os comandos em uma pasta do mesmo nome do cabeçalho. Aqui estão os comandos como getch e textcolor.

linha 3: main (void) {: declaração da principal função do programa em C, main, neste caso vemos a passagem de parametro (informação passada ou adquirida por uma função) void , significando que ela está vazia, oca, não tem valor. acompanhada do símbolo que significa inicio { .

linha 4:  printf(” Esse é o primeiro de muitos programas…”); : esse é o primeiro comando do programa, a função printf (print function), função de impressão, tudo o que estiver entre aspas aparece da forma como foi escrito no monitor para o usuário. Neste caso será impresso no monitor a informação : Esse é o primeiro de muitos programas… . Observe que primeiro temos o comando printf depois o campo da função representado pelos parênteses e, dentro, a informação que, como se quer imprimir no monitor, está entre aspas, depois, o ponto e vírgula significando que, o fim do comando chegou mas o programa continua em outra linha.

linha 5: printf(“\n \n Ah!… Alô mundo…”); : função de impressão printf, para imprimir no monitor  Ah!… Alô mundo… . Note que temos dentro do campo da função ( entre parenteses ) a instrução \n que significa um ENTER para o compilador. Neste caso entre as instruções de impressão existirá um espaço dado pelos dois enters no segundo comando printf.

linha 6: getch(); : comando do cabeçalho conio.h, getch significa pegar um caractere, é uma função que captura o que foi digitado no teclado pelo usuário, neste caso será utilizado pelo programador para manter as informações na tela enquanto o usuário não pressionar uma tecla qualquer já que se o getch não for inserido no programa as informações de impressão ( printf ) serão exibidas e removidas tão rápido que o programador ou usuário nem terá tempo de vê-las.

linha 7: } : indica o fim do programa, fechamento da função principal aberta pelo símbolo oposto {. Sendo então INICIO ( símbolo { ) e FIM ( símbolo } ).

Exemplo Completo 4E.

Vejamos agora um exemplo com 4 ETAPAS de programação. Sendo Algoritmo, Fluxograma, Portugol e Linguagem C.
problema : Criar um programa que apresente a tabuada do valor digitado pelo usuário.

E1 – ETAPA 1 : Algoritmo.


1- Criar uma variável do tipo inteiro – NUMERO;
2- Ler o valor da variável NUMERO;
3- Apresentar NUMERO * 1;
4- Apresentar NUMERO * 2;
5- Apresentar NUMERO * 3;
6- Apresentar NUMERO * 4;
7- Apresentar NUMERO * 5;
8- Apresentar NUMERO * 6;
9- Apresentar NUMERO * 7;
10- Apresentar NUMERO * 8;
11- Apresentar NUMERO * 9
12- Apresentar NUMERO * 10;

Comentários: Observe que o EPS ( Entrada - Processamento - Saída) está correto, criamos um local para armazenar o valor digitado pelo usuário – NUMERO, depois capturamos esse valor digitado pelo usuário e armazenamos na variável NUMERO, e, então, processamos e apresentamos o NUMERO multiplicado de 1 até 10 respectivamente.

E2 – Fluxograma



 

E3 Portugol

programa tabexemplo;
var
NUMERO : inteiro;
inicio
escreva ( ” Entre com o valor para a Tabuada :: “);
leia(NUMERO );
escreva ( NUMERO *1);
escreva ( NUMERO *2);
escreva ( NUMERO *3);
escreva ( NUMERO *4);
escreva ( NUMERO *5);
escreva ( NUMERO *6);
escreva ( NUMERO *7);
escreva ( NUMERO *8);
escreva ( NUMERO *9);
escreva ( NUMERO *10);
fim.

E4 – Linguagem C



Comentários:
Linha 1: inclusão do cabeçalho stdio.h para utilização dos comandos scanf e printf, isto é, comandos de entrada e saída.

linha 2: inclusão do cabeçalho conio.h para utilização do comando getch, e, o usuário poder observar o resultado no monitor e só então depois pressione uma tecla para fechar a janela.

linha 3: declaração da função principal main e parametro void seguido da inicialização do corpo do programa {.

linha 4: declaração da variável NUMERO do tipo inteiro int;

linha 5: função de impressão printf para exibir no monitor Entre com o valor para a Tabuada :: .

linha 6: função de entrada scanf, nesta função observe os itens dentro do campo da função, temos “%d” – este é o tipo de dado que será lido pela função, chamado por muitos programadores de linguagem C de controle da função. O controle da função indica o tipo de dado que será impresso ou capturado, lido. Neste caso temos o controle da função do tipo inteiro %d. Observe os tipos mais comuns:

%d  –> inteiros (int)
%s  –> caracteres (strings)
%f  –> reais ( floats )

Na função scanf, sempre utilizaremos controles de função para indicar que tipo de dado será lido, e, este estará sempre entre aspas. Assim a vírgula separa o tipo de dado com o endereço onde a informação será armazenada. O símbolo & e a variável NUMERO indicam que a informação será armazenada na memória. Sendo & o símbolo que representa armazenamento na memória e NUMERO o nome do endereço de momória onde estará a informação.

linha 7 até a linha 16: comandos de impressão para exibir a tabuada processada pelo computador. Note que em todos os comandos de impressão printf, em seu campo de função, existe o comando \n para pular as linhas e não imprimir tudo em uma linha só e, também entre aspas, a informação como o desenvolvedor quer que o usuário veja, ele indica onde o resultado da operação NUMERO *1 deve ser impresso, indicado pelo controle de função %d.

linha 17: função de captura de tecla, aguardará o usuário pressionar uma tecla qualquer.

linha 18: fim do programa, fechando a função principal main.

Não tem outro modo, para se familiarizar com o procedimento devemos realizá-lo. Insira o programa no compilador e pressione “compilar” para ver o resultado da operação.  

Veja outros programas em C.

Ler um valor e apresentar seu quadrado

#include<stdio.h>
#include<conio.h>
main (void) {
int NUMERO;
printf(” Entre com o valor :: “);
scanf (“%d”, &NUMERO);
printf(“\n %d “, NUMERO *NUMERO);
getch();
}

Ler dois valores e apresentar a soma.

#include<stdio.h>
#include<conio.h>
main (void) {
int NUMERO1 , NUMERO2 , X;
printf(” Entre com o valor 1 :: “);
scanf (“%d”, &NUMERO1);
printf(” Entre com o valor 2 :: “);
scanf (“%d”, &NUMERO2);
X = NUMERO1 + NUMERO2;
printf(“\n %d “, NUMERO1+NUMERO2);
getch();
}


Por enquanto é isso, veremos mais exemplos de programas com 4 etapas e decisões nas próximas semanas.

Pronto! Pronto!
Até lá…

Lógica - Projetos

Primeiramente, vamos ao entendimento do que é um projeto. Projeto é a descrição metodológica de procedimento de uma determinada tarefa, como será executada, por quem, onde etc, é todo o “previamente conhecido” para a realização de uma ação. No entanto, o projeto já é o registro de tudo que foi definido previamente, entenda a seguir qual é o passo a passo para o pensamento lógico adequado nesta construção.



Agora vamos ao resumo de cada Etapa.

IDEIA – Neste momento, o grupo, ou indivíduo, pensa sobre o tema e suas diversas variáveis, suas localidades, seus valores financeiros, seus possíveis resultados, suas ferramentas, seus integrantes e habilidades, o tempo disponível, o problema, as soluções possíveis, os cronogramas, os testes, as avaliações que serão aplicadas nas fases, etc. Buscamos neste ponto criar uma linha de pensamento que nos levará ao tema que queremos desenvolver, observando sempre os problemas e possibilidades, assim como ameaças e oportunidades.

PLANEJAMENTO – Com o tema definido, teremos então que planejar como faremos para alcançar os Objetivos do Trabalho. Neste Momento, teremos que argumentar sobre as etapas, as pessoas envolvidas, as metas, os valores, as fontes de captura de dados, o grau de tolerância dos limites observados, as ferramentas para cada parte e todo do trabalho, seus responsáveis e seus cronogramas. Nesta fase, daremos às ideias levantadas as primeiras construções concretas, definindo então o plano.

PLANO - O Plano é o registro do Planejamento, deste modo, registramos os objetivos, metas, ações e responsáveis, assim como a metodologia, os locais, as ferramentas etc. O plano pode ser definido por etapa, fase, tempo, parte ou todo do trabalho.
 
PROJETO - O Projeto é o registro de movimentações (ações) temporárias do que de deseja realizar para o cumprimento de determinados objetivos, deste modo, o projeto terá o objetivo, problema, hipótese (solução ou soluções possíveis), justificativa, metodologia (definir a ferramenta o local, o responsável), cenário (quando precisamos saber sobre o que há ao redor do foco do projeto), viabilidade, avaliações, resultados.
Vejamos então um exemplo, suponhamos que uma fábrica de móveis queira mudar o perfil da empresa, estabelecer um novo patamar de clientes, deste modo teríamos uma fábrica que já tem um perfil e que quer mudá-lo. Essa seria a ideia – mudar o perfil da fabrica para alcançar novos clientes, o planejamento seria em uma reunião, discutindo quem queremos alcançar como cliente, quais móveis teríamos de fazer, quais materiais, com qual tecnologia, quanto tempo teremos, as etapas, os resultados, os testes e avaliações etc. O plano seria o registro das situações levantadas no planejamento, definindo como e quando das ações, quem e onde etc. O projeto seria a confecção dos novos móveis, com objetivos, justificativas, métodos, análises e avaliações de cada novo móvel. Depois teríamos a construção propriamente dita como desenvolvimento e execução do projeto e, por fim, avaliação e resultados obtidos com os novos móveis.

DESENVOLVIMENTO - É a etapa da mão na massa! Neste momento, realizaremos os procedimentos idealizados no projeto, como uma entrevista, uma observação, uma leitura, um teste com um grupo ou um indivíduo etc. Onde teríamos todos os passos da experiência anotados devidamente para posteriormente podermos analisar e levantar resultados e avaliações sobre os dados.

AVALIAÇÃO - Neste momento teremos as avaliações sobre os passos da experiência no desenvolvimento e aos objetivos do projeto, observaremos cada reação, interação, criando opções e possibilidades para obtenção de dados, sejam esperados ou não.

RESULTADOS OBTIDOS - Esta é a etapa final do projeto. Podendo obter resultados que permitam novos testes e experiências ou fechamento do projeto com um resultado aceitável. É o momento de analisar o resultado que foi obtido com todo o projeto. Não podemos esquecer de tabular os dados e escrever adequadamente qual era o objetivo e qual resultado obtivemos com os procedimentos realizados.
Depois da leitura sobre as principais partes da construção de um projeto, veremos como como exemplo, a abordagem feita por um grupo acadêmico desenvolvendo um Trabalho de Conclusão de Curso para a Escola Técnica de São Mateus, o COMUTA.
Em um primeiro momento observaremos a entrevista cedida pelo Professor Leandro Reginaldo ao Grupo Comuta para a captura de dados sobre o cliente. Neste trecho da entrevista o Professor apresenta a ideia do projeto etc. Podemos destacar trechos importantes na entrevista do professor:
Ferramentas de desenvolvimento de projetos web – o professor deixa a mensagem clara de que o desenvolvedor não precisa dominar uma ferramenta e sim conhecer um conjunto delas para resolver um determinado problema. Utilize ferramentas que melhor conhece e não as que estão na moda.
Diferencial – os projetos web devem sempre buscar um diferencial, uma identidade. Crie sua missão, sua Visão e defina seus Valores para sempre ter um caminho a seguir.
Foco – mantenha sempre o foco no trabalho solicitado, evite desperdícios de tempo e capital com outros temas e itens do projeto. Depois de concluir o que foi solicitado, pode-se até alterar algo. Procure parceiros se este lhe for conveniente, lembre-se que: Parceria é para ser bom para ambos e não para um dos envolvidos.
Professor orientador (pesquisador) – o papel do professor é orientar e não fazer para o aluno o seu trabalho, deste modo, tenha sempre registros de tudo para solicitar apoio, mantenha o cronograma em andamento, fazendo ajustes se necessário, realize o projeto por etapas ordenadas e organizadas. Lembre-se que o professor pesquisa para poder lhe ajudar e o aluno pesquisa para desenvolver o projeto.
Oportunidade – procure desenvolver projetos que possua algum envolvimento pessoal, este processo, fará problemas do mundo interior serem levados para o mundo exterior, podendo ser útil para todos que se encontram na mesma situação.
Veja a seguir o trecho da entrevista com o professor Leandro Reginaldo cedida ao grupo Comuta liderado por Gabriel Souza, contando também com os integrantes, Emerson Dias, Rodrigo Mazzilli, João Fracarolli, Victória Bernardez e Leandro Freire.


Depois de observar o Campo – Cenário, as características do cliente, seu alvo (target) e ramo de atividade, preferências, alcance, capital, objetivos gerais e específicos, justificativas e primeiros testes, o desenvolvedor pode agora ajustar o cronograma e as tarefas assim como as responsabilidades
Neste ponto, a escolha dos recursos é uma tarefa importante, pois, define a localidade, o equipamento, o sistema, a ferramenta e os responsáveis. Em entrevista cedida ao grupo Comuta, o Professor Luciano Lema fala sobre a importância da escolha da ferramenta e da observação do mercado de mobiles para serviços web. Observe os principais aspectos levantados na entrevista do professor.
Mobile – o professor destaca a importância de atender a esse seguimento de mercado web, seu crescimento e tendências de mercado brasileiro. Deixa claro que as ferramentas precisam se adaptar para esse novo seguimento, que, evolui muito rápido deixando ao menos dois sistemas em vantagem no momento, o iOS e o Android.
Diversidade Web – diz ainda sobre a diversidade e o espaço para todos, e, que no Brasil ainda temos muito a percorrer, deixando o mercado de Mobiles e Web muito interessante. Apresenta a entrada de Apps (Aplicativos) para mobiles e seus serviços, sua importância e participação, tal como podemos citar o grande volume de desenvolvedores para Android e poucos para iOS.
Ferramentas – este é sem dúvida, na visão do professor, o maior foco para o desenvolvedor hoje. Ele diz que os programadores focam uma ferramenta e criticam as outras, deixando possibilidades passarem por modismo ou ignorância (não saber sobre). Deste modo o melhor é mesmo saber bem uma ferramenta e não deixar o campo de programação de lado, sempre estudando as outras ferramentas do mercado e suas possibilidades. Deixa ainda a dica de ferramentas flex – que compilam mais de uma linguagem de programação, como Objective-C e Java por exemplo.
Veja o trecho da entrevista a seguir.


Os projetos de web sempre devem ser desenvolvidos de acordo com a orientação e foco do cliente, no entanto, o projeto comercial, precisa de itens que talvez (quase sempre) o cliente nem sabe que existe.Deste modo, o desenvolvedor deve conhecer os meios e as características do processo de web-marketing e do E-commerce. Estes são fatores complementares ao projeto web, são importantes e devem ser muito bem pesquisados e desenvolvidos. Projetos desenvolvidos com fins lucrativos devem visar publicidade e parcerias, melhorando o alcance com redes sociais, blogs etc. Para este fim, o Professor José Roberto Lima evidência a importância do web-marketing e do e-comm em projetos web. Observe os principais levantamentos do professor em entrevista cedida ao grupo comuta.
Web-Marketing – o marketing na web não substitui outros meios de publicidade e propaganda apenas complementa o alcance para um público ainda maior. É uma das mais importantes etapas do projeto, já que pensa na vida útil do Site, blog etc, e seu retorno. Relacionado a outros meios como TV e Rádio, a Internet possui um alcança muito mais barato para o anunciante, onde o alcance é potencialmente maior, mais rápido e de retorno imediato.
Cenário – o Brasil é ainda um campo em desenvolvimento para este fim, possibilitando grandes desenvolvimentos, e, com o mercado cheio de oportunidades. Exploramos muito pouco do marketing na web e menos ainda no Comércio Eletrônico, por motivos dos mais diversos. Mas, esta realidade está em constante mudança e muda para melhor, principalmente do lado comercial, com o crescimento das vendas e dos serviços web.
Profissionais – no Brasil temos ainda a falta de muitos profissionais no mercado de web-marketing e do e-commerce, é um campo que cresce com os profissionais que faltam, como em muitos setores de tecnologia, demoramos muito para receber, aceitar e utilizar tecnologia. O profissional de tecnologia deve estar sempre em estudo de novas ferramentas para poder suprir a necessidade do mercado, assim, estará preparado para as mudanças.
Web – um resumo do que é web, e mais profundo ainda, internet, o professor fala sobre o consumo, e sobre os consumidores, deixando claro que não existe consumidor bobo, todos querem serviços de qualidade. Ressalta ainda, que o comércio eletrônico é para todos, vendedores e compradores, e que o item mais procurado pelos consumidores é o relacionamento humano. Pensando, claro, na forma de tratar com cuidado, fazer corretamente, cumprir compromissos, respeitar as opiniões e diferenças etc. Fica a dica do professor de forma muito clara, “faça ao ponto de fazer a diferença”, utilizando tecnologia para um determinado fim e não mais do que precisa.
Veja a entrevista do Professor no link abaixo.


Não esqueça de que todo projeto deve ser avaliado, antes, durante e depois de executado. Estude os resultados obtidos, confronte com os objetivos estabelecidos e suas metas. Refazer parte de um projeto é sempre melhor do que refazer o projeto.
É isso! Nesta aula vimos as principais características de um projeto, orientações de professores experientes no mercado e em sala de aula e, ainda vídeos com as entrevistas para consulta e referência.

Curta! Compartilhe! e Apreenda!

PRONTO! PRONTO! 

e até mais…


Lógica de Programação - Fluxograma e Portugol

Introdução à Fluxograma e Pseudocódigo

            Fluxograma é uma ferramenta utilizada para representar graficamente o algoritmo, isto é, a sequência lógica e coerente do fluxo de dados. Composta por desenhos geométricos simples conhecidos como diagrama de bloco.

Diagrama de Blocos

            Ferramenta utilizada para representar o método do fluxograma, isto é, o que significa cada símbolo geométrico utilizado no fluxo, sua função, sempre desenvolvido no nível de detalhe necessário.

Simbologia:

            Veremos a seguir cada símbolo e qual a sua função.


 Exemplos de fluxogramas

            Exemplo1: Considere a tarefa de coletar e levar o lixo para fora.

No Algoritmo simples teríamos:

1-    Pegar o saco de lixo;
2-    Juntar o lixo com a vassoura;
3-    Coletar com a pazinha;
4-    Encher o saco de lixo;
5-    Amarrar a boca do saco de lixo;
6-    Levar o saco para fora;

Já no Fluxograma com Diagramas de Blocos teríamos:



Trabalharemos melhor os fluxogramas, mas antes, veremos o que são PSEUDOCODÍGOS.

Pseudocódigo Portugol.

            Falsa linguagem de programação serve como base para outras linguagens, apresentando entradas, tipos de dados, processamentos e saídas. Chamada por alguns de português estruturado e por outros de portugol serve para a criação, desenvolvimento e documentação de um sistema computacional. Portugol possui a estrutura a seguir:

Cabeçalho – nome do programa
Bloco de variáveis – local de declaração de variáveis e serem utilizadas no programa.
Código – instruções do programa.


Tipos de Dados


Para trabalharmos com linguagens e pseudolinguagens de computador, precisamos compreender como os valores são manipulados.  Os dados processados ou armazenados são todos definidos previamente pelos seus tipos para não termos problemas para utilizá-los depois. Como por exemplo, termos números para informar quantidade e caracteres para nomes e endereços. Tudo tem seu tipo e seu uso definidos pelo desenvolvedor da solução digital.

A pseudolinguagem portugol compreende os tipos de dados:

Inteiros – negativos ou positivos.

  • 1
  • -9
  • 800
  • -12
  • 1481
           
Reais – negativos ou positivos, fracionados ou inteiros.      

  • 1,98
  • -9,99
  • 800
  • -12
  • 1481,09

Caracteres – cada caractere ou conjunto que utilizamos para escrever um texto. Podendo ser letra ou número.

  • A1
  • Roberto
  • 800
  • RUA 2
  • CANETA SV

Lógicos – sempre definidos como verdadeiro ou falso, SIM ou NÃO.

Variáveis

            Endereço de memória previamente definido para armazenar dados. São temporários, possuem um tipo e podem ser para entrada ou saída de dados. Para não bagunçar a memória que usamos e podermos utilizar os dados posteriormente devemos nomear as variáveis, isto é, nomear onde iremos guardar os dados. Para isso devemos seguir algumas regras:

1-    Nunca utilize números no primeiro caractere;
2-    Não pode conter espaços em branco;
3-    Não pode ser palavra reservada;
4-    Serve para sua identificação.

Obs.: não utilize números no primeiro caractere porque toda a memória é mapeada numericamente e o computador não consegue identificar o seu espaço criado como variável, não utilize espaços em branco porque o computador entende que ali acaba a sentença e pula o que vem depois do espaço em branco, isso quer dizer que se você entrar com nome e sobrenome ele guarda apenas o nome e pula o sobrenome já que existe um espaço em branco entre eles, não pode ser palavra reservada, significa que o computador possui palavras que ele tem como funções específicas tais como print e scan, se o computador recebe a instrução print ele não sabe se é para guardar ou imprimir os dados, e, por fim utilize o nome da variável para sua identificação, se é para guardar números crie uma variável com o nome VALOR, ou NUM, não crie A1, porque desta forma não sabemos o motivo de sua criação. Exemplos de nomes de variáveis:

           
  • VALOR2
  • NOME
  • END
  • NUMERO

Operadores

            São símbolos que utilizamos para realizar determinadas tarefas matemáticas. Por exemplo, em Pseudolinguagem temos:

  • +         adição
  • -          subtração
  • /           divisão
  • *          multiplicação
  • =         atribuição

O símbolo de atribuição o “igual” será usado para indicar que o endereço de memória, a variável receberá um valor.
Exemplo: NOME = “leme”;
A variável NOME recebe o dado leme. Agora leme está guardado no espaço NOME da memória para ser utilizado posteriormente.

Com o que temos já podemos desenvolver a base dos sistemas de computadores vejamos um exemplo completo.

1º - Criar um programa que leia 2 valores e apresente a sua soma.

ETAPA 01 – Algoritmo

1-    Criar duas variáveis do tipo inteiro, valor1 e valor2;
2-    Criar uma variável do tipo inteiro, soma;
3-    Ler os valores de valor1 e valor2;
4-    Inserir em soma os valores lidos;
5-    Apresentar a soma;

COMENTÁRIOS:
Passo 1: criamos duas variáveis para armazenar os dois valores que o problema pediu, como não especificou o tipo de dado de entrada, podemos então criá-los do tipo inteiro ou real, no caso criaremos inteiros.
Passo 2: criamos uma outra variável do tipo inteiro para armazenar a soma dos dois valores.
Passo 3: agora com as variáveis criadas podemos ler e guardar os valores 1 e 2.
Passo 4: guardaremos a soma dos dois valores em soma.
Passo 5: exibiremos no monitor o resultado da soma dos dois valores.

ETAPA 2: fluxograma



OBS.::. Para TODOS os programas teremos que observar se ciclo de EPS está funcionando. O que é EPS? ENTRADA, PROCESSAMENTO E SAÍDA. Este processo DEVE acontecer em todos os programas, indicando que o fluxo de dados aconteceu de forma correta, porém saiba que; nem toda entrada depende do usuário.




ETAPA 03: Portugol


Programa exemplo1;
Var
            VALOR1, VALOR2, SOMA: inteiro;

Inicio
            Escreva ( “ entre com o valor 1 : “);
            Leia ( VALOR1);
            Escreva ( “ entre com o valor 2 : “);
            Leia ( VALOR2);
            SOMA = VALOR1+VALOR2;
            Escreva(SOMA);
Fim.

COMENTÁRIOS:
Linha 1: “programa” é uma palavra reservada, não pode ser utilizada para outro fim, apenas identifica o programa, e o “exemplo1” é o nome dado ao programa pelo desenvolvedor. Poderia ser outro nome, segue as regras de nomenclatura de variáveis.
Linha 2: “Var”, indica o inicio do bloco de variáveis. Todas as variáveis utilizadas no programa.
Linha 3: as variáveis e seus respectivos tipos, sempre teremos o nome da variável, quando mais de uma separadas por vírgula, e depois dois pontos e o tipo. Exemplo: NOME: caractere; NUM: real; Observe ainda que sempre depois de uma linha de instrução existe um ponto e vírgula indicando que o fim da linha chegou e continua o programa no comendo seguinte.
Linha 4: inicio das instruções;
Linha 5: “escreva” é uma função de saída, serve para indicar que algo será escrito no monitor, e, o que será escrito está dentro dos parênteses e entre aspas. Tudo dentro dos parênteses que está entre aspas aparece no monitor do modo como foi escrito, quando sem aspas, apresenta o valor guardado no endereço da variável.
Linha 6: “leia” é uma função de entrada, serve para indicar que algo será armazenado em uma variável. Neste caso a informação vem via teclado e será guardada na variável VALOR1;
Linha 7: exibe no monitor a instrução “ entre com o valor 2:” através da função de saída escrever;
Linha 8: armazena na variável VALOR2 o valor digitado pelo usuário via teclado.
Linha 9: armazena a soma de VALOR1 e VALOR2 na variável SOMA;
Linha 10: apresenta no monitor através da função de saída escreva o valor resultado da soma de VALOR1 e VALOR2;
Linha 11: finaliza o programa com fim e ponto. Utilizamos ponto final porque esse é o último comando do programa.


Pronto! Pronto!

Curta! Compartilhe! Apreenda!




Lógica de Programação - Lógica e Algoritmos



Introdução à Lógica

       As diversas ciências definem a lógica e seus atributos de várias maneiras, no entanto, utilizar a lógica é um fator a ser considerado por todos, principalmente pelos profissionais da área do desenvolvimento tecnológico e de informação.

        Devemos desde o início pensar de um modo único sobre algo: lógica não é um benefício que somente algumas pessoas possuem, todos, sem exceção, possuem este benefício.

        A lógica está relacionada normalmente com o pensar, no entanto, ela simplesmente nos auxilia quando pensamos de um modo e não de outro. Por esse fato, podemos relacionar a lógica a “correção do pensamento”, analisando e aprendendo a utilizar as leis do pensamento.

        Tendo o raciocínio como um pensamento mais complexo, e, que possivelmente podemos nos perder na escolha deste ou daquele procedimento, a lógica tem como função ordená-lo, definindo-se assim como “ordem ao raciocínio”. Por isso a lógica estuda e ensina a colocar “ordem no pensamento”.

Lógica Computacional e Algoritmos

            Na área de desenvolvimento, o bom uso da lógica é um bem valioso. A construção de um pensamento com bons resultados é sempre a melhor oferta. Quando falamos de computadores e de sistemas, será mais bem sucedido àquele que desenvolver a resposta mais “afinada”, isto é, o sistema que tiver o melhor processo para resolver determinado problema, como uma planilha de calculo, ou enviar um e-mail ou ainda pagar uma conta de modo seguro, e, para isto, o sistema deve possuir um bom algoritmo.

            Algoritmos são sequencias de instruções para a resolução de um determinado problema. Podemos notar um algoritmo em execução quando observamos alguém fazendo um bolo através de uma receita. Neste caso a receita é o algoritmo. Para que o bolo saia como desejamos devemos seguir a receita na ordem que esta descrita, sem inverter os ingredientes ou a ordem de utilizá-los, senão teremos um resultado, mas, não será o bolo!.

           Normalmente montamos um algoritmo antes de realizar a tarefa, quando ainda estamos pensando no problema, tais quais:

Ir para a escola, neste caso pensamos: qual caminho pegar? Vou de carro? Carona? Sozinho? O que vou levar hoje?  

Fazer café, já neste caso observaríamos: tenho os ingredientes? O que faço primeiro? Com ou sem açúcar?

         O principal agente no desenvolvimento de sistemas é o algoritmo, e a lógica é o principal agente no desenvolvimento de algoritmos, portanto; o principal objetivo da Lógica é a construção de Algoritmos válidos e coerentes.

            Todos os algoritmos são finitos e bem definidos, estruturados em ações e sequenciais. Sempre!

            Vejamos exemplos de algoritmos:

1º - Criar um algoritmo para fazermos uma salada de frutas.

            Pois bem, neste caso teríamos:

Resposta:

1 - pegar um utensílio para colocar as frutas cortadas;
2 - coletar as frutas para a salada;
3 - lavar as frutas;
4 - descascar as frutas;
5 - cortar em tamanhos pequenos;
6 - colocar todas as frutas cortadas no utensílio;

            Para esta resolução, foi abordado um algoritmo bastante superficial, que possui apenas a síntese da resposta, isto é, o desenvolvedor do processo pode escrever o algoritmo no nível que achar necessário, descrevendo ou não os detalhes de acordo com o problema. Imagine um algoritmo para trocar uma lâmpada queimada;

2 º - Criar um algoritmo para a troca de uma lâmpada queimada.

Resposta:

1 - pegar a escada;
2 - pegar a lâmpada nova;
3 - subir na escada;
4 - retirar a lâmpada queimada;
5 - colocar a lâmpada nova;
6 - acionar o interruptor;

            Observe que não houve um detalhamento muito grande para o algoritmo, e não significa que está errado, e sim, que não foi necessário um grande nível de detalhe para a resposta. Se fosse preciso maior detalhe, poderíamos inserir diversas observações lógicas no caso como: Onde está a lâmpada? Alto, baixo? Qual o tipo de lâmpada? Preciso de algum recurso para removê-la? Entre outras questões que colaboram com a construção de um melhor algoritmo, podendo criar novos passos ou otimizar os que já tem.

            Desenvolva os algoritmos das situações a seguir:


3º - criar um algoritmo da Torre de Hanói para 3 hastes e 3 discos.

            A Torre de Hanói possui as seguintes regras:

          - todos os discos devem ser colocados em outra haste diferente da inicial (1) da mesma forma como o jogo se inicia ( A - pequeno, B - médio e C - grande ).        
          - nunca um disco maior fica sobre o menor;
          - apenas movimente um disco por vez;
          - discos A, B e C cada um com um tamanho diferente;
          - hastes 1, 2 e 3 de mesmo tamanho;
           






Resposta:

1-    Mova o disco A para a haste 3;
2-    Mova o disco B para a haste 2;
3-    Mova o disco A para a haste 2;
4-    Mova o disco C para a haste 3;
5-    Mova o disco A para a haste 1;
6-    Mova o disco B para a haste 3;
7-    Mova o disco A para a haste 3;


4º - Criar um algoritmo para atravessar três jesuítas para a outra margem do rio.

          Considere a situação: 3 jesuítas e 3 canibais estão na margem do rio. Para a segurança dos jesuítas devemos atravessá-los para a outra margem do rio com um barco seguindo as seguintes regras:

            - nunca os jesuítas devem estar em menor número em nenhuma das margens;
            - apenas duas pessoas podem ir ao barco por vez;
            - apenas o barco pode ser utilizado para a travessia;
            - considere a margem A na direita e a margem B na esquerda.




Resposta:

1-    Mova 1 canibal e 1 jesuíta para a margem A para a margem B;
2-    Mova 1 jesuíta da margem B para a margem A;
3-    Mova 2 canibais da margem A para a margem B;
4-    Mova 1 canibal da margem B para a margem A;
5-    Mova 2 jesuítas da margem A para a margem B;
6-    Mova 1 canibal e 1 jesuíta da margem B para a margem A;
7-    Mova 2 jesuítas da margem A para a margem B;
8-    Mova 1 canibal da margem B para a margem A;