Arquivo da categoria: Informática

Bom o portal amcollucci.com.br, havia nascido com o intuito de falar coisas sobre informática, hoje ele e muito mais abrangente mas não tem como eu abandonar a minha origem!

Linguagem C – parte 2 – Variáveis

Variáveis, tipos de variáveis.

Bom essa segunda parte vou falar sobre variáveis e entrada de dados no programa. Essa parte e bem importante já que sem ela o programa teria de ser auto suficiente, e ter todas as informações em seu código.

Variáveis servem para receber informações/ ou armazena-las, imagine um jogo por exemplo, nele são necessárias variáveis que marquem sua pontuação, a posição onde você se encontra.. etc…

Tipos de variáveis:

Variáveis podem conter diversas informações.

Quanto ao tipo de informação elas podem ser em forma de Números ou letras:

No caso especifico de programas matemáticos o importante e aprender os tipos de variáveis numéricos:

Os tipos numéricos que o professor usa normalmente são INT e FLOAT, mas ainda há o DOUBLE, e as características UNSIGNED, LONG, SHORT, mas vou me ater ao dois primeiros.

INT – INTEGER – e usado para guardar informações de números inteiros:

Ex:

Números de pessoas numa cidade, numero de estrelas no céu. Idade, ano de nascimento.

FLOAT – Ponto Flutuante – é a representação de números Reais.

Ex:

Valores monetários, divisão que não é exata.

O ponto flutuante e chamado assim por causa que podemos representar um numero muito grande através flutuando sua virgula ou seu ponto.

15000 = 15 * 10³ = 1,5 * 104 =  0,15 * 105

Lets Coding!

01 – Criar um programa que guarde e exiba o numero de elefantes em uma jaula!


#include <stdio.h> // inclusão da biblioteca de entrada e saída

#include <stdlib.h> // inclusão da biblioteca do DOS

int main() {

/*

declaro um espaço na memoria(variavel), para guardar o numero de elefantes

*/

int numero_elefantes;

numero_elefantes = 10; // joga o numero 10 no espaço (variavel) numero_elefantes

/* imprime o valor da variavel, ou seja o numero de elefantes */

printf (“O numero de elefantes na jaula é %d”,numero_elefantes);

system (“pause);

return 0;

}

Aqui e importante observar que o nome da variavel pouco importa para o funcionamento do programa, desde que ela siga algumas regras:

– usar letras e numeros, ou so letras.

– Não ter o mesmo nome de um comando em C

– Não ter espaços

– Não começar com numeros

Detalhe se você usar float em um programa onde você so precisaria usar um int como no acima, funciona do mesmo jeito porém você desperdiça memória.

Note que no exemplo o comando printf tem um detalhe!

 Printf (“até aqui eu já vi bobão,, opsss <strong>%d”,numero_elefantes</strong>); 

O printf, tem alguns comandos que são reservados para trabalhar com variáveis. E funciona assim, onde ele encontra o primeiro comando de controle, ele substitui pela primeira variável, onde esta o segundo ele substitui pelas segunda variavel etc…

Os comandos de controle usados dependem da variável de modo geral fica assim:

Float  – %f  – floating point

Int – %d –decimal

No exemplo do codigo fica assim:

 printf (“O numero de elefantes na jaula é %d”,numero_elefantes); 

O valor da variavel numero_elefantes substitui o %d e o resultado impresso é:

O numero de elefantes na jaula é 10.

O mesmo exemplo usando float:


#include <stdio.h> // inclusão da biblioteca de entrada e saída

#include <stdlib.h> // inclusão da biblioteca do DOS

int main() {

/*

declaro um espaço na memoria(variavel), para guardar o numero de elefantes

*/

float numero_elefantes;

numero_elefantes = 10; // joga o numero 10 no espaço (variavel) numero_elefantes

/* imprime o valor da variavel, ou seja o numero de elefantes */

printf (“O numero de elefantes na jaula é %f”,numero_elefantes);

system (“pause);

return 0;

}

O problema do exemplo acima e que não importa quantas vezes o programa for ser executado ele sempre vai exibir que na jaula tem 10 elefantes, já que ninguem vai digitar outro valor. E ele sempre vai usar o que esta no programa.

Leia a terceira parte!

Tutorial de Linguagem C – Introdução

Bom quem acompanha (quem acompanharia?) meu blog, deve estar ciente que comecei o primeiro periodo de Engenharia Mecânica, parece ser de praxe, que nas engenharias haja a matéria de algoritmo.

Motivado por alguns alunos que estavam em dificuldade em minha classe, eu desenvolvi um mini tutorial, ele e bem simples mesmo, e parece ate bobo.

Observem que antes que venham os troll flamers, eu desenvolvi um tutorial básico, para permitir que meus amigos solucionasse problemas matemáticos em linguagem C.

Parte 1: http://amcollucci.com.br/2011/05/13/linguagem-c-parte-1-printf/ ?

Parte 2: http://amcollucci.com.br/2011/05/13/linguagem-c-parte-2-variaveis/

Parte 3:

Parte 4:

Continua …

Linguagem C – Parte 1 – printf().

Para acompanhar o tutorial é necessario um compilador da linguagem C/C++ sugiro o Dev c++ que é gratuito e pode ser baixado no link abaixo:

http://sourceforge.net/projects/dev-cpp/files/Binaries/Dev-C%2B%2B%204.9.9.2/devcpp-4.9.9.2_setup.exe/download

No site da PUC, há um bom tutorial ensinando a utilizar a ferramenta.

http://www.inf.pucrs.br/~pinho/LaproI/DevC/Dev.html

Começando pelo começo!

1- Fazendo um programa que escreve qualquer coisa na tela….

 

#include <stdio.h>

int main(){

printf (“OI TURMA”);

}

Esse programinha vai imprimir uma msg na tela e vai fechar igual um relâmpago, por isso vamos ter de acrescentar mais algumas linhas…

#include <stdio.h>
#include <stdlib.h>

int main(){

printf (“OI TURMA”);

system(“pause”);
return 0;
}

Agora sim! Vamos a explicação

#include <stdio.h> Essa linha significa que estamos incluindo (#include<>) um arquivo em anexo com nosso programa.

Esse arquivo e o stdio.h esse arquivo e o responsável por “ensinar” ao
compilador como ele deve proceder para escrever um texto na tela, como ele deve proceder para ler uma letra no teclado, sem ele o comando PRINTF não poderia ser executado. Tente compilar o programa acima sem utilizar o #include <stdio.h> e você verá um erro.

No exemplo acima eu usei duas bibliotecas são elas:

stdio.h

std = standart – em português, padrão
i = input – em português entrada
o = output – em português saída

stdlib.h
std = standart – em português padrão
lib = library – em português biblioteca, essa biblioteca permite que você use
comandos do DOS, para quem não conhece o dos ele e um sistema operacional de linha de comando predecessor do Windows.

Depois de escolher as bibliotecas eu chamei a função main, ela e a principal função do programa e deve estar presente nele obrigatoriamente.( Até onde eu conheço a main só e obrigatória na linguagem C utilizada para PCS, ou tecnicamente no C para X86)

int main(){

Comandos

}

Reparem que essa declaração não tem ponto e virgula, pois ela delimita o inicio e o fim de um bloco de instruções. O “}” no final do bloco faz as vezes do ponto e virgula

O int usado na definição da função main significa que a função main espera um resultado “inteiro” por isso que no final do programa nos enviamos um return 0; como zero é um numero inteiro a função termina sem erros!

Dentro da função main eu escrevi outros comandos um deles e o “printf”, o printf vem do inglês também conforme explicação abaixo.

printf – comando de saída formatada
– print – em português significa imprimir. Historicamente servia para imprimir na stdout (std = standart que é padrão, out saída, ou seja na saída padrão.). Hoje em dia a saída padrão de todos os PCs e o monitor, mas antigamente era a impressora.
– f – vem de format que significa formatado. Isso e porque os tipos de dados que saem impressos através dessa função vão formatados de acordo com os caracteres de controle que você usa.

Inicialmente pense no printf como o comando que vc usa para escrever na tela

Abaixo vou mostrar o uso do comando printf, o que ta de vermelho e obrigatório;

printf (“ Aqui você pode digitar qualquer texto “);

No caso se eu usasse esse comando ele imprimiria na tela:

Aqui você pode digitar qualquer texto

A frente eu vou falar mais sobre esse comando.

Por ultimo o comando system (“pause”).

Esse comando serve para paralizar o sistema até que alguma tecla seja pressionada. Ele só e possível usar se vc usar a biblioteca stdlib.h do c ou a biblioteca iostream do c++.

O comando system(“”) envia uma msg ao sistema operacional, se você retirar por exemplo o “pause” e no lugar colocar “notepad”, ele vai abrir o bloco de notas para você.

Abaixo segue alguns exemplos para fixar esses comandos.

 

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

int main(){

printf (“OI \n TURMA \n COMO VAI \n ”);

system(“pause”);
return 0;
}

 

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

int main(){

printf (“OI \t TURMA \t COMO VAI \t ”);

system(“pause”);
return 0;
}

 

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

int main(){

printf (“OI TURMA COMO VAI ”);

system(“pause”);
return 0;
}

 

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

int main()
printf (“OI TURMA COMO VAI ”);
printf (“OI TURMA COMO VAI ”);
printf (“OI TURMA COMO VAI ”);
printf (“OI TURMA COMO VAI ”);
system(“pause”);
return 0;
}

 

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

int main(){

printf (“OI TURMA COMO VAI \t”);
printf (“OI TURMA COMO VAI \n”);
printf (“OI TURMA COMO VAI \t”);
printf (“OI TURMA COMO VAI \n”);

system(“pause”);
return 0;
}

Até a parte 2!

O.O Segunda Xícara

Hoje as máterias estão assim curtas e rápidas, mais uma parte do meu tutorial de PHP orientado a Objetos, o engraçado e que faço desse tutorial uma retórica, ja que ele serve pra mim mesmo.

Nessa segunda parte vou falar sobre:Abstração e Encapsulamento

Então lets Go!

“A abordagem de orientação a objetos favorece a aplicação de diversos conceitos considerados fundamentais para o desenvolvimento de bons programas, tais como abstração e encapsulação. Tais conceitos não são exclusivos desta abordagem, mas são suportados de forma melhor no desenvolvimento orientado a objetos do que em outras metodologias.”

Fonte http://www.dca.fee.unicamp.br/cursos/POOCPP/node5.html

Para os fãs de O.O que dizem que aplicações modulares só são desenvolvidas através dessa metodologia, esta aí a UNICAMP retificando!

Abstração

Abstração significa que antes de ir para a implementação é definido o que o objeto faz. Ao usar o KimX por exemplo, a pessoa pode simplesmente usar o gera_captcha(), e exibir um captcha, sem se preocupar com o que esta gerando ele.

De forma semelhante um desenvolvedor, não sabe que quando ele manda abrir um arquivo ele esta chamando a System Call OPEN(), segundo o padrão Posix.

Outro exemplo e o Administrador de empresas que ao usar a função soma no excel, não sabe como o mesmo faz para retornar o resultado.

Isso eu aprendi aqui: http://www.dca.fee.unicamp.br/cursos/POOCPP/node6.html

Encapsulamento

O Encapsulamento permite que você crie métodos dentro de uma classe que só serão usadas por ela mesma, e não de forma direta pelo usuário.
Exemplo:

O Objeto Carro, tem o método ignição.
O método ignição e publico pois o usuário (motorista) deve girar a chave.

Agora o método injeta_combustivel_no_motor, e chamado pelo método ignição, mas não pelo usuário (motorista).

A grande vantagem disso e por exemplo se o usuario(motorista) pedisse ao mecânico(programador), para substituir o álcool/gasolina por gás, ele não teria de alterar o método ignição, somente o método injeta_combustivel_no_motor.

Já isso eu aprendi aqui: http://www.htmlstaff.org/ver.php?id=23370

Até a próxima Xícara, e pra quem não sabe a tal da Xícara e porque estou escrevendo esse tutorial entre uma Xícara e outra de café, enquanto leio  e aprendo sobre O.O.

Até a proxima

O.O – Primeira Xícara!

Eu sempre fui avesso a O.O mas devido as circunstâncias estou sendo obrigado a aprende-la, daí resolvi fazer um tutorial detalhando essa “bagaça”. O primeiro conceito a aprender e sobre classes e Objetos e como o primeiro descreve o segundo então let’s go!

Classes e Objeto

O Objeto é a instancia de uma classe. Ou seja eu posso dizer que as caixas são feitas de papelão ou madeira, podem ou não ser pintadas, trazem informações sobre o produto, pode estar ou não fechada, isso são características da Classe Caixa. Quando eu defino que a Caixa ABC é feita de papelão, está pintada de vermelho, traz uma foto do produto na frente e embaixo traz o ano de fabricação, e esta fechada com grampos, eu acabei de definir (instanciar um objeto).

Em relação a esses dois amigos ainda há o Poliformismo, que diz que um procedimento (método) pode existir em mais de um objeto, mas não necessariamente fazer a mesma coisa, por exemplo, a operação fechar do objeto porta, e diferente da operação fechar do objeto contrato.

E ainda há a herança, ou seja um objeto pode herdar características de outro, por exemplo ao definirmos o objeto caneta, não precisamos recriar o método escrever, ao criarmos o objeto filho caneta-tinteiro, pois esse já herda todas as características de seu antecessor.

Eu aprendi isso no link: http://www.dca.fee.unicamp.br/cursos/POOCPP/node4.html

Até a Segunda Xícara!

Retorno de dados, usando return, ou enviando parametros por referência.

Esse artigo é de dar um nó no cerébro, eu e um amigo gastamos alguns neurônios discutindo qual é mais vantajoso, passar uma variável por referencia para obter o resultado de uma função ou usar o return.

Várias linguagens utilizam o conceito de função, basicamente sua sintaxe geral é:

Function nome_da_função(argumentos){

}

As variáveis que nós utilizamos dentro da função normalmente “morrem” dentro dela.  Exceto quando a função usa a Passagem por Referência:

Passagem de Parâmetros por Referência

Na passagem por referência o que é passado para a função é o endereço do parâmetro e portanto a função que recebe pode através do endereço modificar o valor do argumento na função que chamou.

Fonte:  http://equipe.nce.ufrj.br/adriano/c/apostila/funcao.htm

Então e mais ou menos isso:

$a=1;
$b=2;
soma($a,$b);
echo $b;
function soma($a,&amp;$b){
$b=$b+$a;
}

Nesse código o valor de a e b são somados e o valor e colocado em $b. Tudo muito bem, tudo muito bom, mas a meu ver e um estilo porco, pois o código fica ilegível, e você vai ter de ler a função para saber que o dado que ela retorna  é gravado na segunda variável.

Eu sou a favor da Passagem por Valor, e o retorno através da função return.

Definição da passagem por Valor:

Passagem de Parâmetros por Valor

Na passagem por valor uma cópia do valor do argumento é passado para a função. Neste caso a função que recebe este valor ao fazer modificações no parâmetro não estará alterando o valor original que somente existe na função que chamou.

Fonte: http://equipe.nce.ufrj.br/adriano/c/apostila/funcao.htm

$a=1;
$b=2;
$c = soma($a,$b);
echo $c;
function soma($a,$b){
$c=$b+$a;
return $c;
}

A legibilidade do código é muito superior. Fica evidente que a função joga o valor na variável $c. Mesmo sem ler a função soma.

Um porém levantado por meu amigo seria quanto ao uso de memória, que no nosso exemplo, gera 5 posições de memória na passagem por valor e apenas 2 na passagem por referência.

Mas, contudo, a passagem por valor ainda oferece outra vantagem você pode chamar a funçao da seguinte maneira, <?php c$=soma(2,3)?>, ocupando tambem apenas 3 espaços na memória.

E aí qual a opinião de vocês passagem por valor ou por referência?

Leia mais em:

http://www.vivaolinux.com.br/artigo/Referencias-ou-ponteiros-em-PHP?pagina=3

Ps.: Diego foi por sua causa mesmo que eu escrevi esse artigo!

Begin {}

Esse post marca o inicio de minha nova carreira. Venho a anos atuando como analista de Redes e de Suporte, a 6 meses resolvi mudar, e migrar para a área de desenvolvimento em especial o desenvolvimento web.

Varios fatores me levaram a isso, a falta de valorização da profissão e uma delas, os baixos salários praticados em MG, entre outros me desanimaram com a carreira que segui por 6 anos.

Boas lembraças ficaram, grandes projetos em Empresas como FIAT, Teksid, Comau, Tenda, GVS.. enfim varias. E outras nem tao Grandes como a ITE internet e Tecnologia.

Bom dentre as várias tecnologias existentes, escolhi aprender as seguinte, para iniciar.

  • XHTML – Padrao da W3C
  • CSS – Para formatação da página
  • PHP5 – Linguagem Server Side com Suporte a OO
  • Javascript – Linguagem Cliente side
  • Ajax – Na verdade ajax e uma forma de pensar em programaçao web usando o Javascript
  • Mootools – Framework Ajax/Javascript que escolhi

Bom no momento, estou meio que desempregado, e em busca do meu primeiro emprego de web.

E sobre o que cargas d’água falara esse blog

Esse blog falará de forma geral sobre programação, e tecnologias web. Postarei nele tutorias, informações, dicas, ou simplesmente coisas relacionadas a área. O Objetivo e Interagir melhor com este ramo de TI que para mim é novo.

Até o proximo post