Note: Chào mừng bạn đến với Cntt-k3.com. Hãy Đăng ký thành viên hoặc Đăng nhập để có thể tham gia cùng Cntt-k3 nhá !

Você não está conectado. Conecte-se ou registre-se

Introdução à linguagem C - Parte 01

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1Introdução à linguagem C - Parte 01 Empty Introdução à linguagem C - Parte 01 Qui Nov 27, 2014 7:00 pm

Luheca

Luheca
Membro

A Linguagem C é uma linguagem compilada (assim como Pascal), ou simplificadamente, o seu código, após passar pelo processo de compilação/linker, é convertido em arquivo executável. Além disso, ela é uma linguagem estruturada, ou seja, o seu código é organizado e definidos em blocos.

Ela foi criada por Dennis Ritchie em 1972, para desenvolver o Unix, que originalmente havia sido escrito em Assembly (ou Linguagem de Montagem – linguagem de programação de baixo nível, muito próxima à linguagem de máquina). Por permitir uma integração com Assembly (os códigos poderiam se misturar ao código em C), tornou-se uma das linguagens de programação mais utilizadas. Influenciou muitas linguagens, inclusive C++, que foi desenvolvida originalmente como uma extensão da linguagem C, englobando características da Programação Orientada a Objetos. Devido à sua ampla utilização, e a imensa gama de variações que foram sendo criadas ao longo de seu desenvolvimento, foi padronizada em 1999, padrão conhecido como C99. Em 2000, foi adotado como padrão ANSI. Em 2007, começou a surgir uma nova idéia de padronização, englobando novas funcionalidades à linguagem. Essa idéia é conhecida como C1X.

Bom, acho que de história isso é suficiente para o post. Quem se interessar por mais detalhes, pode acessar os links da Wikipedia que se encontram ao longo do texto.

Para programarmos, precisamos de um compilador, que irá transformar nosso código-fonte em programa. Para desenvolvermos, podemos optar por uma IDE ou Ambiente de Desenvolvimento Integrado, que reúnem ferramentas como editor de texto, compilador, depurador (debugger – permite encontrarmos erros de lógica). As opções gratuitas mais populares, sem sombra de dúvida, são Dev-C++ e Code::Blocks. Ambos os sistemas estão disponíveis para Windows e Linux. A última versão do Dev-C++ é a versão 4.9.9.2 (5.0 beta), de 2005, disponível para download aqui. Já o Code::Blocks encontra-se na versão 10.05, de maio desse ano (eles utilizam a nomenclatura de versão “Ubuntu”), que pode ser obtida aqui. Eu, particularmente, prefiro o Code::Blocks apesar dele ser um pouco mais “pesado”. Já tive problema com bugs no Dev-C++ (o que me causou algumas dores de cabeça quando desenvolvia meu projeto de 1º ano na faculdade. . .). A seguir, temos uma imagem da janela dos dois ambientes:

Introdução à linguagem C - Parte 01 Devcpp
Tela principal do Dev-C++
Introdução à linguagem C - Parte 01 Codeblocks
Tela principal do Code::Blocks

A instalação dos dois ambientes é bastante tranquila e intuitiva (apesar do Code::Blocks estar disponível apenas em inglês). Qualquer dúvida, basta deixar um comentário.

Para aqueles que preferem utilizar o Linux para programar, também existem boas opções de IDE, como KDevelop e Anjuta, além dos próprios Code::Blocks e Dev-C++. Basta usar o gerenciador de pacotes de sua preferência ou baixar diretamente dos sites correspondentes e instalar.

Bom, já ficamos sabendo da história, já preparamos o nosso ambiente de programação. Mas e daí? Eu quero é programar! Como é a sintaxe dessa tal linguagem C? É totalmente diferente de Pascal? Tudo que eu já aprendi é inútil?

Calma, calma. Todos os conceitos já vistos até aqui serão utilizados e as diferenças serão explicadas. Pra começarmos, vamos ver o famoso Alô Mundo em Algoritmo, em Pascal e em C. As diferenças serão explicadas logo a seguir:

Então, observação 1: em C, não temos o nome do programa no código. Logo em seguida, temos #include que “equivale” ao uses crt. Os includes indicam arquivos de cabeçalho (daí a extensão .h – header) que contêm funções. No caso, stdio (standard in out) possui referências às funções padrão de entrada e saída. Podemos generalizar uma observação 2 dizendo que todos os programas em C terão o #include . Em seguida, temos o “assustador” int main(void)! Calma, calma pessoal. Vamos explicar. Por padrão definido na linguagem, todo programa em C é composto de funções e deve conter a função main, que é a primeira função do programa, a que é chamada pelo sistema operacional quando o sistema é chamado. Tá, mas e esse tal de int main(void), o que significa. Significa o seguinte: a função de nome main devolverá um valor do tipo inteiro – int - e não receberá nada como argumento – void. O abre e fecha chaves equivale ao nosso begin / end do Pascal, ou seja, o que definimos entre eles é o que a função irá fazer. Podemos, então, definir as funções em C com o seguinte formato:

()

Aproveitando a cartada, vou falar sobre os tipos primitivos em C.

int – o nosso querido amigo, inteiro
long – o inteiro, com uma maior capacidade (para números beeeeem grandes)
float – o conhecido real. Chamado de float ou “ponto flutuante” porque a vírgula (ou ponto, nos EUA) “caminha” ou “flutua” (haja criatividade!)
double – float com maior precisão de casas após a vírgula
char – tipo caractere
void – o “nada”, “vazio”, “coisa nenhuma”… Não é usado para declarar variáveis, apenas para valores de retorno e parâmetros de funções.

Putz, acabou??? E a string??? E o booleano??? Calma, gente… C, ao contrário de Pascal (que foi desenvolvida para ser uma linguagem voltada para o ensino da programação), foi desenvolvida para fornecer flexibilidade aos programadores. String em C, são na verdades vetores de caracteres terminados com ”. Este caractere serve pra diferenciar strings de vetores de caracteres comuns. Por exemplo, uma string com o meu nome ficaria com ‘R’ ‘a’ ‘f’ ‘a’ ‘e’ ‘l’ ”, ou seja, seria um vetor de 7 posições. Já o tipo booleano só passou a existir a partir do padrão C99 (desde que seja incluído o arquivo stdbool.h), sendo então chamado de bool. Mas no geral, a linguagem C considera todo inteiro igual a 0 (zero) como falso e qualquer valor não-zero como verdadeiro.

Bom, continuando a nossa análise do nosso pequeno Alo Mundo. Logo após à declaração da função main, temos uma abre-chaves. Em C, as chaves delimitam o corpo das funções e dos laços, da mesma forma como temos o begin e o end em Pascal. Bastante simples, não? E poupa digitação, agilizando a codificação!

Prosseguindo, temos uma chamada ã função printf. Esta é a função padrão da linguagem para a escrita de texto na tela do console. Na chamada a ela, passamos uma constante de texto. Em C, as constantes de texto vem entre aspas duplas, em vez das aspas simples do Pascal. Mas o que seria esse n no final?? Em C, temos algumas constantes para a formatação de texto. n é pra pular de linha. Outra constante bastante utilizada é o t que indica uma tabulação horizontal.

Para concluirmos, temos o return 0; que indica o retorno da função (como foi declarado que a função main retorna um inteiro, precisamos retorná-lo, certo?). Mas por que 0? E pra quem estamos retornando isso? Estamos retornando 0 para o sistema operacional. O valor 0 indica que o programa executou corretamente, sem erros.

A seguir, a lista dos operadores lógicos em C, que por sua vez diferem um pouco dos já conhecidos em Pascal:

Igualdade: ==
Menor, Maior, Menor ou Igual, Maior ou Igual: <, >, <=, >=
Diferente: !=
E: &&
Ou: || (dois pipes, aquele símbolo geralmente Shift+Contrabarra)
Como pode ser visto, nenhuma novidade. A lógica funciona da mesma maneira: executa-se o bloco if caso a sentença seja verdadeira e o bloco else (caso exista), caso seja falsa.

Agora, vamos verificar a nossa função de leitura, a função scanf. Nesta função, passamos dois parâmetros para a mesma. Primeiramente, devemos passar o formato do conteúdo que vamos ler. Como assim??? Calma, no começo pode parecer um tanto quanto confuso, mas é mais simples do que parece. Neste primeiro parâmetro, especificamos o tipo da variável que vamos ler. Os argumentos mais comuns são:

“%d” ou “%i” – para o tipo int
“%f” para o tipo float
“%c” para o tipo char
“%s” para strings (ou melhor, vetores de caracteres char[])
Já no segundo parâmetro, passamos a variável em que queremos guardar o conteúdo lido. Mas por que esse & antes do nome da variável??? Porque na verdade estamos passando o endereço na memória desta variável. Mas não se preocupe com isso por enquanto. Essa história de endereços será vista com mais calma quando chegarmos nos famosos (e temidos) ponteiros. Logo logo a gente chega lá. Voltando ao scanf, o único tipo que não necessita do & é quando vamos ler strings (pelo fato de vetores já serem ponteiros… mais uma vez, não se preocupe com isso por enquanto!).

Bom, aqui encerro a primeira parte da Introdução à Linguagem C. Pratiquem a programação, busquem materiais diferentes (tolo é o homem de um só livro, dizia um professor do Ensino Fundamental…) e divirtam-se! Desculpem-me por esse hiato entre os posts, mas a vida de faculdade no 3º ano não está fácil. Assim que possível, posto a segunda e última parte dessa nossa introdução. No próximo post, explicarei a estrutura de seleção switch e as estruturas de repetição while, do-while e for. E quem sabe uma explicação sobre funções!

Uma última coisa antes de encerrar. Gente, por favor não fiquem pedindo programas prontos, sejam nos comentários, sejam via e-mail. Tenho recebido inúmeros e-mails com pedidos do tipo. Sinceramente, os exercícios que os professores passam no curso técnico / faculdade servem pra que vocês desenvolvam o seu raciocínio lógico. Treinar, errar, quebrar a cabeça é essencial para um bom aprendizado. Digo isso para o bem de vocês mesmos como futuros profissionais. Fica a dica!

Código:

Créditos: 100% Rafael Toledo

2Introdução à linguagem C - Parte 01 Empty Re: Introdução à linguagem C - Parte 01 Qua Dez 03, 2014 12:02 pm

Wh0s

Wh0s
Administrador

Estou querendo aprender C, continue com as introduções.

https://webtech.forumeiro.com

3Introdução à linguagem C - Parte 01 Empty Re: Introdução à linguagem C - Parte 01 Qua Dez 03, 2014 10:14 pm

Luheca

Luheca
Membro

Reset escreveu:Estou querendo aprender C, continue com as introduções.

Estou vendo o que é útil para iniciantes. :D

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos

  • Um fórum grátis | ©phpBB | Fórum gratuito de ajuda | Denunciar um abuso | Fórum grátis