|
|
Se esta página lhe ajudar, considere fazer uma doação |
Alô mundo !
Vamos escrever nosso programa Alô mundo em C.
Se você estiver usando o Linux abra qualquer editor de textos, pode ser o vi, o emacs, o gedit, etc.....e digite o código abaixo:
#include <stdio.h>
int main()
{
printf("Alô mundo!");
return(0);
}
|
Grave o programa com o nome de alo.c.
Para compilar o programa digite o seguinte na linha de comando:
$ gcc alo.c -o alo
Para executar o programa:
$ alo
Lembre-se que para executar o programa:
1. Ele deve estar no PATH
2. Você deve ter permissão de execução para o arquivo.
Se você estiver usando o Windows abra seu compilador favorito, digite e salve o código. Depois compile o código.
Ao executar o arquivo será exibida a mensagem Alo mundo!
Vamos analisar o código do programa:
#include <stdio.h>
Esta linha usa a diretiva #include para inserir o arquivo de cabeçalho stdio.h no seu programa. Os arquivos de cabeçalho são arquivos que contém definições, macros e funções que são muito utilizadas em todos os programas. Normalmente todo compilador C já vem com muitos arquivos de cabeçalho, mas você também pode escrever os seus. Os arquivos de cabeçalho tem a extensão .h
int main()
Esta linha indica a definição da função main. Um programa em C é formado por várias funções. Quando o programa é executado main é a primeira função a ser chamada, assim todo programa deve ter uma função main.
{
As chaves delimitam um bloco de comandos.
printf("Alo mundo!");
A função printf exibe o conteúdo do seu argumento na tela. No caso a mensagem Alo mundo !. Esta função faz parte do arquivo de cabeçalho stdio.h por isso ele foi incluído no programa.
O comando é terminado com um ; (ponto-e-vírgula). Todo comando em C deve terminar com ;
return(0);
Este comando indica que a função main retorna 0 (zero).
}
A última chave fecha o bloco de comandos da função main.
Se você não entendeu algum dos conceitos ditos acima não se preocupe, apenas aceite e no futuro você entenderá o porque disso tudo.
Tipos de dados
A linguagem C possui quatro tipos básicos de dados:
char - usado para armazenar caracteres
int - usado para armazenar números inteiros
float - usado para armazenar números de ponto flutuante (decimais) de precisão simples
double - usado para armazenar números de ponto flutuante de precisão dupla
Constantes
Para definir uma constante usa-se a diretiva #define. Abaixo segue um exemplo do seu uso:
#include <stdio.h>
#define IDADE 34
int main()
{
printf("Sua idade é %d anos",IDADE);
return(0);
}
|
No exemplo acima, toda ocorrência da constante IDADE no código do programa será substituída pelo valor inteiro 34. É importante observar que entre #define e IDADE deve haver apenas um espaço, e entre IDADE e 34 também só deve haver um espaço.
Variáveis
As variáveis devem ser declaradas antes de ser usadas. Para declarar uma variável basta digitar seu tipo, seguido de espaço e de seu nome. Não esqueça o ponto-e-vírgula encerrando o comando.Exemplo:
int idade;
float nota;
As variáveis devem ser declaradas no início da função. Exemplo:
#include <stdio.h>
int main()
{
int idade;
float nota1, nota2,nota3, nota4;
printf("idade = %d",idade);
return(0);
}
|
Observe no exemplo acima que é permitido declarar mais de uma variável na mesma linha.
Nomeando constantes e variáveis
Para nomear as constantes e variáveis siga as seguintes regras:
- Os nomes devem começar com um caractere alfabético
- O caractere de sublinhado ( _ ) é considerado um caractere alfabético
- Os nomes podem ser constituídos de caracteres alfabéticos ou numéricos
- Os nomes não devem conter caracteres especiais (!, @, #, $, %, ¨, &, *, etc ......)
- Não devem ser utilizadas palavras reservadas da linguagem C que são:
| int | short | goto | for |
| char | unsigned | return | do |
| float | auto | sizeof | while |
| double | extern | break | switch |
| struct | register | continue | case |
| union | typedef | if | default |
| long | static | else | entry |
Por conveção os nomes das constantes devem ser em letras maiúsculas e os nomes das variáveis em letras minúsculas.
Operadores aritméticos
| OPERADOR | OPERAÇÃO |
| + | soma |
| - | subtração |
| * | multiplicação |
| / | divisão |
| % | módulo (resto da divisão inteira) |
Operadores relacionais
| OPERADOR | SIGNIFICADO |
| > | maior que |
| > = | maior ou igual a |
| < | menor que |
| < = | menor ou igual a |
| = = | igual a |
| ! = | diferente de |
Operadores lógicos
| OPERADOR | SIGNIFICADO |
| && | e |
| || | ou |
Comando de atribuição
Na linguagem C o comando de atribuição é o sinal de igualdade ( = ). Assim, a expressão:nome = samuel; atribui o valor "samuel" a variável "nome". Da mesma forma a expressão: nota = 7.68; atribui o valor "7.68" a variável "nota".
Saída de dados
A saída de dados é proporcionada pela função printf. Ela faz parte do arquivo de cabeçalho stdio.h, assim este arquivo deve ser incluído no programa para a utilização desta função.
Exemplo da utilização de printf:
#include <stdio.h>
int main()
{
int nr;
char letra;
nr = 5;
letra = 's';
printf("O valor de nr é %d\n",nr);
printf("O valor de letra é %c\n",letra);
return(0);
}
|
Os especificadores de formato básicos são:
%d => int
%c => char
%f => float
Entrada de dados
A entrada de dados é feita com a função scanf. Sua sintaxe é:
scanf("EF",&VARIÁVEL);
onde EF é um especificador de formato e VARIÁVEL é variável onde o dado entrado será armazenado.
Exemplo:
#include <stdio.h>
int main()
{
int nr;
char letra[2];
printf("Entre com o valor do número :");
scanf("%d",&nr);
printf("Entre com a letra :");
scanf("%s",&letra);
printf("O número é %d e a letra é %s\n",nr,letra);
return(0);
}
|
Inserindo comentários
Para inserir comentários em seu código basta colocá-los entre os sinais /* e */
Exemplo:
/* Utilizando a função scanf() para entrada de dados */
#include <stdio.h>
int main()
{
int nr;
char letra[2];
printf("Entre com o valor do número :");
scanf("%d",&nr);
printf("Entre com a letra :");
/* O especificador de formato %s é usado com strings */
scanf("%s",&letra);
printf("O número é %d e a letra é %s\n",nr,letra);
return(0);
}
|
Bloco de instruções
Todo bloco de instruções em C deve ser delimitado por chaves { } .
Exemplo:
#include <stdio.h>
/* o conteúdo de main() é um bloco de instruções
* por isso está entre chaves */
int main()
{
int idade;
printf("Entre com a idade :");
scanf("%d",&idade);
/* outro bloco de instruções por isso está entre chaves */
if(idade > 21)
{
printf("Você já é de maior !!!\n");
printf("Você tem que arrumar um emprego !!!\n");
}
else
printf("Você é de menor !!!\n");
return(0);
}
|
Desvio condicional
O desvio condicional é uma estrutura de fluxo onde o programa analisa uma condição e:
- caso esta condição seja verdadeira executa alguns comandos
- caso esta condição seja falsa executa outros comandos
if (CONDICÃO)
COMANDOS1
else
COMANDOS2
Se CONDIÇÃO for verdadeira, COMANDOS1 serão executados, caso contrário, COMANDOS2 serão executados.
É importante saber como a linguagem C representa um valor verdadeiro ou falso. Para a linguagem C qualquer valor diferente de zero é verdadeiro e o valor zero é considerado falso. Assim, a análise: if (1) é verdadeira. E a análise: if (0) é falsa. Este conceito é muito usado na linguagem C pois muitas funções retornam valores inteiros.
Exemplo do uso de if:
#include <stdio.h>
int main()
{
int idade;
printf("Entre com sua idade :");
scanf("%d",&idade);
if(idade > 21)
printf("Você é de maior !!!\n");
else
{
printf("Você é de menor !!!\n");
printf("Tem que amadurecer !!!\n");
}
return(0);
}
|
Múltipla escolha
A estrutura de múltipla escolha é implementada pelo comando switch. Sua sintaxe é:
switch (VARIÁVEL)
{
case VALOR1: COMANDO1;
break;
case VALOR2: COMANDO2;
break;
.........................................................
.........................................................
default: COMANDO;
break;
}
O entendimento é o seguinte: a VARIÁVEL é comparada com cada VALOR especificado nos cases. Se um VALOR igual a VARIÁVEL for encontrado, o referido COMANDO é executado. Se não houver nenhuma correspondência com os valores dos cases, o comando de default é executado.
O comando break deve existir pois, sem ele, os comandos abaixo são executados independente do teste.
Exemplo:
#include <stdio.h>
int main()
{
int opcao;
printf("1. Pesquisar\n");
printf("2. Comprar\n");
printf("3. Sair\n");
printf("Entre com sua opção :");
scanf("%d",&opcao);
printf("\n");
switch (opcao)
{
case 1: printf("Você escolheu a opção 1. Pesquisar.\n");
break;
case 2: printf("Você escolheu a opção 2. Comprar.\n");
break;
case 3: printf("Você escolheu a opção 3. Sair.\n");
break;
default:printf("Você não escolheu nenhuma das três opções.\n");
break;
}
return(0);
}
|
Repetição com teste no início
Esta estrutura é representada pelo comando while, cuja sintaxe é:
while (CONDIÇÃO)
COMANDOS;
A CONDIÇÃO é avaliada e, caso seja verdadeira, os COMANDOS são executados. Então, a CONDIÇÃO é avaliada novamente e, caso seja verdadeira, os COMANDOS são executados de novo. Isto se repete até que a avaliação da CONDIÇÃO resulte em falso.
A característica importante deste tipo de construção é que, caso a CONDIÇÃO seja avaliada como falsa já na primeira vez, os COMANDOS não serão executados nenhuma vez.
Exemplo:
#include <stdio.h>
int main()
{
int nr;
printf("Digite um número : (-1 para sair)");
scanf("%d",&nr);
while (nr != -1)
{
printf("Você digitou %d\n",nr);
printf("Digite outro número (-1 para sair) :");
scanf("%d",&nr);
};
printf("Você digitou -1 para sair.\n");
return(0);
}
|
Repetição com teste no final
Esta estrutura é implementada com o comando do. Sua sintaxe é:
do
COMANDOS
while (CONDICÃO);
Os COMANDOS são executados e depois a CONDIÇÃO é avaliada. Caso, seja
verdadeira os COMANDOS são executados novamente e a CONDIÇÃO novamente é
avaliada. Este ciclo continua até que a CONDIÇÃO seja falsa.
A característica importante deste tipo de construção é que os COMANDOS são executados pelo menos uma vez, independente da CONDIÇÃO.
Observe o código do exemplo da seção anterior usando do:
#include <stdio.h>
int main()
{
int nr;
printf("Digite um número : (-1 para sair)");
scanf("%d",&nr);
do
{
printf("Você digitou %d\n",nr);
printf("Digite outro número (-1 para sair) :");
scanf("%d",&nr);
}
while (nr != -1);
printf("Você digitou -1 para sair.\n");
return(0);
}
|
Observe que o código não funciona corretamente. Digite -1 logo de início para encerrar o programa e, mesmo assim as instruções do laço do são executadas. O que não ocorre no código do exemplo da seção anterior.
Repetição com variável de controle
Esta estrutura é implementada pelo comando for, cuja sintaxe é:
for(INICIALIZAÇÃO;CONDIÇÃO;INCREMENTO)
COMANDOS;
o entendimento é o seguinte:
-
A variável de controle é inicializada em INICIALIZAÇÃO
-
CONDIÇÃO é testada e, caso seja verdadeira, os COMANDOS são executados
-
A variável de controle é incrementada de acordo com INCREMENTO
-
CONDIÇÃO é novamente testada e, caso seja verdadeira, os COMANDOS são executados
-
A variável de controle é incrementada
-
CONDIÇÃO é novamente testada e, caso seja verdadeira, os COMANDOS são executados
-
O ciclo continua até que CONDIÇÃO seja falsa
Exemplo:
#include |
|
|
Se esta página lhe ajudou, considere fazer uma doação |