Bom dia!,
Hoje vamos ao nosso primeiro programa em C. A ideia é criar uma mini calculadora, onde o usuário digita dois números e escolhe a operação desejada entre eles, e também se familiarizar com os comandos de . O código não é o mais otimizado possível no intuito de ser mais didático. Segue abaixo:
#include <stdio.h> /*Header para utilizar as funções de exibição e leitura de dados */
int main() { /* Inicio do nosso programa*/
/*Declaração de variáveis*/
int num1, num2, resultado; /* INT = números inteiros */
char op; /* CHAR = caracteres */
/*Entrada de dados - Funções PRINTF e SCANF*/
printf("\n Digite o primeiro numero :");
scanf("%d", &num1);
printf("\n Digite o segundo numero :");
scanf("%d", &num2);
fflush(stdin); /* Necessário para limpar o buffer do teclado, caso contrario não irá ler a operação*/
printf("\n Digite a operacao (+,-,/,*) :");
scanf("%c", &op);
if (op == '+') /*Corresponde ao nosso comando SE*/
{
resultado = num1 + num2; /*Processamento*/
printf("\n Resultado da soma : %d", resultado); /*Saída de dados */
}
if (op == '-') /* Mesmo padrão acima*/
{
resultado = num1 - num2;
printf("\n Resultado da subtracao : %d", resultado); /*Comando \N pula uma linha*/
}
if (op == '/')
{
resultado = num1 / num2;
printf("\n Resultado da divisao : %d", resultado);
}
if (op == '*')
{
resultado = num1 * num2;
printf("\n Resultado da multiplicacao : %d", resultado);
}
}
Testando: (F12 / F11 )
E assim sucessivamente com a subtração, multiplicação e divisão( por enquanto, somente com números inteiros ).
A linguagem C é case sensitive , portanto letras maiúsculas diferem de letras minúsculas. Se você tentar digitar um Printf, a nossa IDE de devolverá uma mensagem de erro nesta linha.
Existem outras peculiaridades do C que podem travar seu desenvolvimento, como a utilização do comando fflush(stdin);, necessário quando lemos um char depois de ler um número.
Outro ponto importante de observação é a sintaxe dos comandos printf e scanf. As variáveis são representadas pelos códigos abaixo, e adicionadas após o as aspas, como parâmetros. Segue uma pequena tabela dos mais utilizados:
%c Char
%d ou %i inteiros
%f ponto flutuante ( com casas decimais depois da virgula)
%g usa %f ou %e(notação científica), depende do que for mais curto graficamente
%s cadeia de caracteres (string)
%u inteiros sem sinal
Na função scanf, é necessário a utilização do &, que é basicamente um operador de endereço, que é utilizado para localizar na memória onde a variável foi alocada( muito resumidamente).
Existem várias melhorias que podem ser implementadas nesse programa, como utilização de else if, case, e até reduzir o número de variáveis. Boa sorte!.
terça-feira, 8 de março de 2016
segunda-feira, 22 de fevereiro de 2016
Escolhendo uma linguagem e uma IDE
Bom dia!
Hoje vamos prosseguir com nossos
exercícios de uma forma diferente. Escolhi a linguagem de programação C para
continuarmos o aprendizado. A escolha desta linguagem deve-se as suas caracteristicas: estruturada,
simples e fácil de se usar.
Mas não se apegue a uma linguagem
de programação. O importante é saber programar, independente da linguagem.
Programar é como saber dirigir, você pode se acostumar a dirigir um carro de
determinada marca, mas se é habilitado pode dirigir qualquer carro. Você
pode precisar de um tempo de adaptação, mas vai acabar dirigindo normalmente. A
mesma coisa acontece com a programação, uma vez que você domine uma linguagem,
sua curva de aprendizagem é muito mais rápida. Eu mesmo não sou um especialista
em linguagem C. Toda linguagem de programação tem uma estrutura de decisão,
estruturas de repetição, conexões a banco de dados, etc.
Outro erro comum de quem está
nessa fase de aprendizagem, é querer aprender logo a construir telas e fazer
acesso a banco de dados. Não que isso não é importante, mas não é nem de longe
o mais essencial. Portanto, o conselho que fica é: se esforcem na lógica. Mas
vou deixar que suas futuras experiências falem por vocês.
Voltando a linguagem C, escolhi a
ferramenta Dec C++. É simples, leve e ideal para iniciantes. Você também a
encontra facilmente na internet.
Depois de instalada a ferramenta,
vamos ao nosso primeiro projeto:
File > New > Project>
Console Application ( C Project).
Salve o projeto em um diretório
de sua preferencia.
Como uma boa IDE, já nos traz algum
código:
#include <stdio.h>
#include <stdlib.h>
/* run this program using the
console pauser or add your own getch, system("pause") or input loop
*/
int main(int argc, char *argv[])
{
return
0;
}
A duas primeiras linhas, os
includes stdio.h e stlib.h são headers,
em que o comando include, traz
todas as funções destes dois arquivo e os deixa disponível para nossa
utilização, de modo resumido.
Os comentários em C são iniciados
por /* e finalizados por */.
O comando Int main, corresponde
ao nosso INICIO. Tudo que estiver entre as chaves, estará entre nosso INICIO/
FIM.
E por fim, o que esse nosso
mini-programa de exemplo faz? Aperte F10 para compilar esse código fonte:
E ele retorna 0!
Nós próximos post’s nos
aprofundaremos mais na ferramenta e realizaremos alguns exercícios nele.
Obrigado.
segunda-feira, 15 de fevereiro de 2016
Algoritmo dos Números Primos resolvido e comentado!
Um dos mais comuns exercícios passados nas faculdades e cursos que ensinam programação é o do número primo. Hoje vamos resolve-lo.
1) Escreva um algoritmo que receba a quantidade de números primos que o usuário deseja visualizar, e os escreva.
Um número primo é aquele que só é divisível por ele e por um, onde o resto da divisão é diferente de 0 para todos os demais números.
Portanto para resolver esse algoritmo, vamos nos utilizar dos contadores e divisões( ou o resto das mesmas).
Vale lembrar que o que for marcado em aspas são comentários para seu melhor entendimento do algoritmo.
INICIO.
VARIAVEIS v_qde, v_contador, v_contador_2, v_cont_primo, v_resto_div;
v_contador = 0;
v_cont_primo = 1;
ESCREVA "Digite a quantidade de números primos que deseja receber";
LEIA v_qtde; " Entrada de dados
ESCREVA "Seguem os números primos :"
ENQUANTO v_qtde <> 0; "A ideia é dimunir a quantidade até 0"
v_contador = v_contador + 1;
v_contador2 = 0;
v_cont_primo = 0;
ENQUANTO v_contador <> v_contador2. "Enquanto os contadores forem diferentes, o contador 2 percorrerá de 1 até contador1 para verificar a quantidade de números divisíveis onde o resto for igual a 0.
v_resto_div = RESTO ( v_contador / v_contador2). " A ideia é pegar o resto da divisão. Corresponde ao comando MOD / % em muitas linguagens de programação.
SE v_resto_div = 0;
v_cont_primo = v_cont_primo + 1;
FIMSE;
v_contador2 = v_contador2 + 1;
FIM ENQUANTO.
SE v_cont_primo = 2. "Quer dizer que ele só foi dividido com resto 0 por 1 e por ele mesmo. Portanto, é número primo
ESCREVA v_contador.
v_qtde = v_qtde -1. "Diminui a quantidade até que a mesma zere.
FIMSE.
FIMENQUANTO.
FIM.
A lógica é um pouco complicada de se entender no inicio, mas a melhor forma de fazer isso é utilizar o teste de mesa. Simule o funcionamento do algoritmo acima, assim fazendo seu passo-a-passo fica mais fácil, entender, seguir e estimular sua lógica.
Obrigado!
A lógica é um pouco complicada de se entender no inicio, mas a melhor forma de fazer isso é utilizar o teste de mesa. Simule o funcionamento do algoritmo acima, assim fazendo seu passo-a-passo fica mais fácil, entender, seguir e estimular sua lógica.
Obrigado!
quarta-feira, 10 de fevereiro de 2016
Exercicio de lógica e Teste de mesa.
1) Uma loja de tênis possui 2 funcionários. Cada
funcionário ganha 5% de comissão sobre cada par de sapato vendido. O salário
base de cada funcionário é de 800,00 reais, mais a comissão. Escreva um
algoritmo que receba a quantidade de sapatos vendida por cada vendedor e o
preço de cada sapato. Calcular a comissão e o total do salário de cada
funcionário, e exibi-los em tela.
Pode parecer um pouco complicado a primeira
vista, mas vou resolver e comentar a resposta, é só acompanhar o raciocínio.
Tudo que for marcado com aspas, são
comentários no algoritmo.
Primeiro declararemos nossas variáveis :
Inicio.
Variável SalarioFixo = 800,00
Variável ValorComissao,ValorComissao1, ValorComissao2;
Variável Qtde,QtdeComissao1, QtdeComissao2;
Variável Salario1, Salario2;
Variável Contador;
“Entrada de dados do usuário
Escreva “Digite a quantidade de sapatos
vendidos pelo vendedor 1”;
Leia QtdeComissao1;
Contador = QtdeComissao1;
ENQUANTO contador <> 0;
Escreva
“Digite o valor da venda do Vendedor 1”;
Leia
ValorComissao;
ValorComissao1
= ValorComissao + ValorComissao1;
Subtraia
1 de contador;
FIM ENQUANTO ;
Contador = 0;
Escreva “Digite a quantidade de sapatos
vendidos pelo vendedor 2”;
Leia QtdeComissao2;
Contador = QtdeComissao2;
ENQUANTO contador <> 0;
Escreva
“Digite o valor da venda do vendedor 2” ;
Leia
ValorComissao;
ValorComissao2
= ValorComissao + ValorComissao2;
Subtraia
1 de contador;
FIM ENQUANTO;
“Vamos ao processamento de dados
“Calculando a porcentagem do vendedor 1,
temos na variável ValorComissao1 o valor
total dos produtos que devem ser calculado o valor da comissão, com isso, vamos
ao seguinte cálculo.
ValorComissao1 = ValorComissao1 * 0,05.
ValorComissao2 = ValorComissao2 * 0,05.
“Calculo dos salários
Salario1 = SalarioFixo + ValorComissao1;
Salario2 = SalarioFixo + ValorComissao2;
“Saida dos dados
Escreva “ O salario do funcionário 1 é de” + Salario 1 “ e a comissão é de “
ValorComissao1”;
Escreva “ O salario do funcionário 2 é de” + Salario 2 “ e a comissão é de “
ValorComissao2”;
FIM.
E está resolvido nosso exercício. Porém,
como podemos ter a certeza de que está certo?
TESTE DE MESA
Sugestão: Pegar uma folha em separado e
escrever o nome de todas as variáveis de um lado, e simular o funcionamento do
programa do outro, substituindo os valores das variáveis conforme forem mudando
no programa.
Se o usuário acessa-se esse programa, o que
ele veria?
“Digite a quantidade de sapatos vendidos
pelo vendedor 1” :
Vamos supor que o usuário digite “2”
Vamos supor que o usuário digite “2”
2
(Acompanhe os valores das variáveis com uma
folha sua)
Então seguindo os passos do programa, o
usuário verá:
“Digite o valor da venda do vendedor1”: 100
“Digite o valor da venda do vendedor 1” : 200
“Digite o valor da venda do vendedor 1” : 200
Seguindo esses passos, a variável contador
deve se igual a 0, saindo do laço ENQUANTO/ FIM ENQUANTO, retornando o valor dele para 0, mas
acompanhe mais detalhadamente por sua conta. Prosseguindo com o processamento,
o programa deve pedir os mesmos valores para o vendedor 2, e supondo as mesmas
entradas do usuário, a saída do programa
deverá ser:
O salario do funcionário 1 é de 815 e a
comissão é de 15;
O salario do funcionário 2 é de 815 e a
comissão é de 15;
Para seu próprio entendimento, resolva e
detalhe seu teste de mesa!
Obs. DESAFIO: Tratar a entrada de dados para não aceitar valores negativos.
domingo, 7 de fevereiro de 2016
Variáveis, Escrever e Ler;
Bom dia!
Vamos nos aproximar mais dos
primeiros programas que criaremos e incrementar um pouco mais nosso português
estruturado, resolvendo problemas mais comuns em computadores. Basicamente todo
programa se baseia em uma entrada, um processamento e uma saída de dados. Por
exemplo, quando você abre seu navegador, digita um site (entrada) o navegador
busca e processa todos os dados necessários (processamento) , e o formata para
sua exibição(saída).
Para assimilar esse conceito nos
nossos exercícios, vamos incorporar os comandos ESCREVA e LEIA nos nossos
algoritmos. E juntamente com o comando leia, vamos utilizar o conceito de
variável.
As Variáveis são um espaço que o
programa reserva na memória do computador, que obviamente podem mudar seu
valor. Por enquanto, vamos utilizar somente essa simples definição.
Resolverei
um exercício bem simples e irei comenta-lo, para deixar como modelo para os
próximos.
1)
Receber dois números e apresentar a soma,
divisão e multiplicação entre eles.
Inicio. “Começo da resolução
Variável Numero1; “Preferencialmente
declarar todas as variáveis juntas
Variável Numero2; “Utilizar nomes sugestivos para cada variável
Variável ResultadoSoma;
Variável ResultadoSubtracao;
Variável ResultadoDivisao;
Variável ResultadoMultiplicacao;
Escreva “Digite número 1”; “Saída de dados para o usuário, solicitando informação
Leia Numero1; “Aguarda usuário digitar o número 1;
Escreva “Digite número 2”;
Leia Numero2; “Termino da entrada de dados
Variável Numero2; “Utilizar nomes sugestivos para cada variável
Variável ResultadoSoma;
Variável ResultadoSubtracao;
Variável ResultadoDivisao;
Variável ResultadoMultiplicacao;
Escreva “Digite número 1”; “Saída de dados para o usuário, solicitando informação
Leia Numero1; “Aguarda usuário digitar o número 1;
Escreva “Digite número 2”;
Leia Numero2; “Termino da entrada de dados
Calcular ResultadoSoma = Numero1
+ Numero2; “Inicio do
processamento
Calcular ResultadoSubtracao = Numero1 – Numero2;
Calcular ResultadoDivisao = Numero1 / Numero2;
Calcular ResultadoMultiplicacao = Numero1 * Numero2; “Fim do processamento
Escreva “ O resultado da soma é”+ ResultadoSoma; “Saída de dados
Escreva “O resultado da subtração é” + ResultadoSubtracao;
Escreva “O resultado da divisão é” + ResultadoDivisão;
Escreva “O resultado da Multiplicação é” ResultadoMultiplicacao;
Fim.
Calcular ResultadoSubtracao = Numero1 – Numero2;
Calcular ResultadoDivisao = Numero1 / Numero2;
Calcular ResultadoMultiplicacao = Numero1 * Numero2; “Fim do processamento
Escreva “ O resultado da soma é”+ ResultadoSoma; “Saída de dados
Escreva “O resultado da subtração é” + ResultadoSubtracao;
Escreva “O resultado da divisão é” + ResultadoDivisão;
Escreva “O resultado da Multiplicação é” ResultadoMultiplicacao;
Fim.
O exercício acima
poderia utilizar menos variáveis, mas o importante nesse momento é ser
didático, e ainda não performático.
É importante também observar a ordem, entrada, processamento e saída. Poderiam ser feitas saídas assim que o processamento é feito e o resultado final seria o mesmo, mas isso pode tornar seu futuro código confuso. Imagine sempre que alguém irá dar manutenção nele, e nesse momento você não quer que ninguém lembre de sua mãe, rs.
No próximo
post, irei pegar alguns exercícios um pouco mais complexos e resolve-los.
sábado, 6 de fevereiro de 2016
Comandos SE e ENQUANTO
Bom dia!
Hoje vamos conceituar os comandos SE e ENQUANTO nos nossos exercícios de português estruturado,para futuros algoritmos.
Hoje vamos conceituar os comandos SE e ENQUANTO nos nossos exercícios de português estruturado,para futuros algoritmos.
O comando SE representa uma decisão, sobre uma condição que
pode ser verdadeiro ou falso. Exemplo:
SE está chovendo:
Pegar o guarda chuva; ( Condição verdadeira)
SENÃO;
Pegar o boné; ( Condição falsa)
FIMSE.
A estrutura em si é bem simples.
Comando ENQUANTO serve justamente para fazer o que o nome
sugere: Enquanto determinada condição não for atingida( retorno falso) o
programa/ algoritmo repetirá determinado bloco de instruções (até o comando FIM ENQUANTO).
Quando a condição
for verdadeira, o programa/algoritmo seguirá seu fluxo normalmente, não repetindo mais aquele bloco de instruções
Exemplo: Lavar a louça;
Inicio. "Vamos delimitar o inicio e fim do programa
Ir a pia;
ENQUANTO existir louça suja.
Pegue um talher/copo/prato;
Lavar com a buchinha;
Enxaguar;
Secar;
Guardar;
Lavar com a buchinha;
Enxaguar;
Secar;
Guardar;
FIMENQUANTO. “Se
ainda existir louça suja, volta para o comando enquanto. Se não, prossegue com os comandos abaixo.
Lavar a buchinha;
Secar a pia;
Fim.
Nas próximas postagens irei assimilar mais nossos exercícios
com alguns algoritmos simples.
domingo, 31 de janeiro de 2016
Exercícios
A melhor maneira de treinar sua lógica de programação é praticar, errar, comparar resultados, tentar de novo, entender o por que e como você errou para se aperfeiçoar para uma proxima tentativa.
Portanto, vou deixar aqui alguns exercicios com suas resoluções, ( que podem ser aprimoradas ) . Nestes exercicios vamos fazer basicamente o mesmo esquema de resolução em português estruturado, separando o máximo possível todos os passos para a resolução de um problema.
1.Tomar um banho;
Pegar uma toalha;
Se dirigir até um banheiro;
Retirar suas roupas e guarda-las;
Ajustar a temperatura do chuveiro;
Entrar de baixo da água;
Se molhar completamente;
Sair debaixo da água;
Utilizar o shampoo no cabelo;
Pegar um sabonete e se ensaboar;
Ligar o chuveiro novamente;
Limpar toda a espuma do corpo;
Desligar o chuveiro;
Se secar com a toalha;
Vestir novas roupas.
Impressionante como uma simples tarefa diária pode se traduzir em tantos passos - e poderiam haver mais. Para ter uma boa lógica de programação é necessário ter todos esses passos muito bem definidos, pois como já disse, o computador não faz nada que não lhe é ordenado.
2. Comprar pão;
Pegar dinheiro;
Se dirigir até uma padaria;
Pedir a quantidade requisitada de pães;
Pegar os pães;
Retornar para seu local de origem.
3.Ligar a TV;
Verificar se a TV está ligada na tomada;
Procurar pelo controle remoto;
Ligar a TV;
Na resolução acima, o primeiro passo pode parecer desnecessário. Porém, se retirarmos este passo e ao concluir todos os passos , a TV não liga? Precisariamos retornar ao passo um. No proximo post , apresentarei os comandos SE e ENQUANTO, para complementar nosso algoritmo e dar uma melhor solução a este problema.
Assinar:
Postagens (Atom)

