Apostila C Drsolutions
Apostila C Drsolutions
Apostila C Drsolutions
1 – Introdução
1.2 – O Compilador
Esqueleto básico:
#include <stdio.h>
int main() {
return 0;
}
Todos os programas que iremos escrever nessas primeiras aulas serão formados
por um conjunto de comandos (ou instruções) entre a linha “int main()” e a linha “return
0;”. Veja um exemplo de um programa (você não precisa entendê-lo agora):
Exemplo 1
#include <stdio.h>
int main() {
return 0;
}
int main() {
int idade;
printf(“Qual a sua idade?\n”);
scanf(“%d”, &idade)
printf(“\nNossa.. %d aninhos!!\n”, idade);
return 0;
}
Exemplo 3
#include <stdio.h>;
int main() {
int idade;
printf(“Qual a sua idade?\n”);
scanf(“%d”, &idade);
printf(“\nNossa.. %d aninhos!!\n”, idade);
return 0;
};
O comando printf() serve para exibirmos mensagens na tela. Seu uso mais simples é da
forma:
printf(“seu texto aqui!”);
Observe que o uso das aspas duplas é obrigatório, portanto os seguintes comandos
estariam errados:
printf(‘seu texto aqui!’);
printf(seu texto aqui!);
int main() {
printf(“Bem vindo!”);
printf(“Estou aprendendo Liguagem C!”);
printf(“Bye, bye...”);
return 0;
}
int main() {
printf(“Bem vindo!”);
printf(“\nEstou aprendendo Liguagem C!”);
printf(“\nBye, bye...”);
return 0;
}
2.2 – getchar()
int main() {
printf(“Bem vindo!”);
printf(“\nEstou aprendendo Liguagem C!”);
printf(“\nBye, bye...”);
printf(“\n\nPressione <ENTER> para sair do programa.”);
getchar();
return 0;
}
Na tela que irá abrir, escolha uma pasta para salvar o arquivo, depois escolha um nome
para o arquivo e finalmente na opção “Salvar como tipo:” escolha a opção “C source
files (*.c)”, conforme a figura abaixo:
Observação: É recomendado que você crie uma pasta para salvar seus programas. Na
tela acima, eu criei uma pasta chamada “ExemplosC” e irei salvar todos os meus
programas dentro dela.
Caso você tenha seguido todos os passos de forma correta, o seu programa será
compilado e executado em uma janela de MS-DOS conforme a figura abaixo:
1 – Identação
Variavel A = 0
SE (Variavel A < 1) ENTÃO
ESCREVA "Variável A é menor que 1."
FIM SE
int main() {
int A=0;
if ( A < 1 ) {
printf(“Variável A é menor que 1.”);
}
getchar();
return 0;
}
(OBS: Esse “if” será explicado em aulas posteriores… aqui você só deve observar a identação)
Observe o mesmo exemplo sem o uso de identação ficaria muito mais difícil de
ser lido e analisado:
Exemplo 8
#include <stdio.h>
int main() {
int A=0;
if ( A < 1 ) {
2. Comentários
int main() {
//Mensagem de saudação
printf(“Bem vindo!”);
printf(“\nEstou aprendendo Linguagem C!”);
printf(“\nBye, bye...”);
return 0;
}
O comentário com barra dupla pode também vir no final de uma linha que
contenha um comando, como no exemplo abaixo:
Exemplo 10
#include <stdio.h>
int main() {
printf(“Bem vindo!”);
printf(“\nEstou aprendendo Linguagem C!”);
printf(“\nBye, bye...”);
printf(“\n\nPressione <ENTER> para sair do programa.”);
#include <stdio.h>
int main() {
printf(“Bem vindo!”);
printf(“\nEstou aprendendo Linguagem C!”);
printf(“\nBye, bye...”);
printf(“\n\nPressione <ENTER> para sair do programa.”);
getchar();
return 0;
}
#include <stdio.h>
int main() {
//Mensagem de saudação
printf(“Bem vindo!”);
printf(“\nEstou aprendendo Linguagem C!”);
printf(“\nBye, bye...”);
return 0;
}
Até mesmo as coisas mais simples, podem ser descritas por seqüências lógicas.
Por exemplo, podemos descrever o algoritmo de como chupar uma bala:
“Calcular média”
• Receba a nota da prova mensal
• Receba a nota da prova bimestral
• Calcule a média com a fórmula media=(mensal+bimestral)/2
• Exiba a média na tela
O programa que realiza a tarefa acima poderia ser escrito em uma pseudo
linguagem da seguinte forma:
Variavel mensal=0
Variavel bimestral=0
Variavel media=0
int main() {
//Declarando as variáveis
float mensal=0;
float bimestral=0;
float media=0;
//Calculando a média
media = (mensal+bimestral)/2;
//Mostrando a média
printf("\n\nA média do aluno é %f",media);
DATA DIVISION.
WORKING-STORAGE SECTION.
77 mensal PIC 99V9 VALUE ZERO .
77 bimestral PIC 99V9 VALUE ZERO .
77 media PIC 99v9 VALUE ZERO .
PROCEDURE DIVISION.
DISPLAY "Digite a nota mensal:"
ACCEPT mensal
DISPLAY "Digite a nota bimestral:"
ACCEPT bimestral
COMPUTE media = (mensal+bimestral)/2.
DISPLAY "A media do aluno e: ", media
STOP RUN.
(Não tente digitar esse código no DEV-C++ que ele não sabe compilar programas na
Linguagem COBOL!)
<body>
<form name="aluno" id="aluno">
Digite a nota mensal:
<input name="mensal" type="text" id="mensal" value="0"><br>
Digite a nota bimestral:
<input name="bimestral" type="text" id="bimestral" value="0"><br>
<input type="button" name="Submit" value="Calcular"
onClick="javascript:calcular();">
<br><br>
A média do aluno é:
<input name="media" type="text" id="media" value="0" disabled>
</form>
</body>
</html>
(Não tente digitar esse código no DEV-C++ por que HTML não tem nada a ver com
Linguagem C!)
AULA 3 – Variáveis
• int: Esse tipo de variável armazena valores numéricos inteiro. Normalmente podem
ser armazenados valores entre -32.768 e +32.767 nesse tipo de variável.
o Exemplos de valores que podem ser armazenados em uma variável int: 100,
-28, 0, 19, 28965, -19852...
o Geralmente é armazenado na memória com a tamanho de 2 bytes (ou
16bits).
• char: Usado para armazenar um único caractere. Em outras palavras, este tipo é
utilizado para se guardar valores definidos dentro da tabela ASCII (-127 a 127).
o Exemplos de valores que podem ser armazenados em uma variável char: ‘v’
, ‘t’, 25...
o Geralmente é armazenado na memória com a tamanho de 1 byte (ou 8 bits).
<tipo_da_variável> <nome_da_variável>;
int idade;
Para declararmos uma variável inteira chamada idade e uma variável float
(número real) chamada peso, escrevemos o seguinte trecho de programa:
int idade;
float peso;
int main() {
int idade;
float peso;
float mensal, bimestral, media;
return 0;
}
Existem algumas regras básicas que devem ser lembradas sempre que formos
nomear nossas variáveis:
• Escolha de nomes significativos para suas variáveis, isso pode ajudar a entender o
que o programa faz e prevenir erros.
• Você pode usar quantos caracteres quiser para um nome de variável com o primeiro
sendo obrigatoriamente uma letra ou sublinhado (_) e os demais podendo ser letras,
números ou outros sublinhados.
• Nunca use espaços em branco no nome de variáveis.
• Nunca use acentos ou caracteres especiais no nome de variáveis.
• Uma variável não pode ter o mesmo nome de uma palavra reservada do C e não
deverá ter o mesmo nome de uma função. Abaixo a lista de palavras reservadas da
Linguagem C:
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
• Em C maiúsculas e minúsculas são tratadas como diferentes e distintas umas das
outras. Por isso, cont, Cont e CONT são três variáveis distintas. Isso pode ser usado
para criarmos variáveis com nomes significativos, como por exemplo
mediaDoAluno, ou cotacaoDoDolar e etc...
Exemplos:
int numero = 2;
char letra = ‘a’;
Código Descrição
%d Valor int (ou decimal)
%f Valor float
%c Caractere simples
%s Cadeia de caracteres
%e Notação científica
%o Valor octal
%u Valor int sem sinal
%x Valor hexadecimal
%ld Valor int longo
%lf Valor float longo
A lista de argumentos pode estar vazia, pode conter valores ou pode conter variáveis.
Observe os exemplos abaixo:
int main() {
return 0;
}
2. Operadores aritméticos
Exemplos:
<variável_que_recebe> = <operador><operando1>;
Exemplo:
inversoDaNota = -mensal;
Segue abaixo um programa completo que calcula a média de um aluno com base
nas notas atribuídas às variáveis mensal e bimestral dentro do código fonte.
Exemplo 16
/*
Exemplo do uso de operadores aritméticos
Linguagem C – Uma introdução
-
Diego M. Rodrigues
*/
#include <stdio.h>
int main() {
//Declarando as variáveis
float mensal, bimestral;
float soma, media, inverso;
return 0;
}
int y, var;
y = 2;
var = y++;
//Agora o valor de var será 2 e y será 3
Neste caso, colocamos o operador de incremento ++ depois da variável y, então o valor
de y será primeiro atribuído à variável var e depois será incrementado.
int main() {
//Declarando as variáveis
int contador = 10;
int numero = 2;
int x, y, var;
return 0;
}
int main() {
//Declarando as variáveis
int quantidade = 10;
int vendas = 2;
scanf("especificador de formato",&variável)
O segundo ponto importante é que antes do nome da variável existe um & e esse
& é OBRIGATÓRIO. O programa não irá funcionar sem ele.
Código Descrição
%d Valor int (ou decimal)
%f Valor float
char letra;
scanf(“%c”,&letra);
int ano;
scanf(“%d”,&ano);
int main() {
Observe que sempre que encontrarmos coisas do tipo “Receba”, “Leia” e etc em
um algoritmo, podemos usar a função scanf() para implementar essa instrução e sempre
que encontrarmos coisas do tipo “Exiba”, “Escreva”, “Mostre” e etc podemos usar a
função printf() para realizar essa tarefa.
“Calcular média”
• Receba a nota da prova mensal
• Receba a nota da prova bimestral
• Calcule a média com a fórmula media=(mensal+bimestral)/2
• Exiba a média na tela
O programa que realiza a tarefa acima poderia ser escrito em uma pseudo
linguagem da seguinte forma:
Variavel mensal=0
Variavel bimestral=0
Variavel media=0
int main() {
//Declarando as variáveis
float mensal=0;
float bimestral=0;
float media=0;
//Mostrando a média
printf("\n\nA média do aluno é %f",media);
Implementando em Linguagem C:
Exemplo 21
/*
Exemplo de algoritmo para cálculo da área de um quadrado
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main() {
//Declarando as variáveis
int lado=0, area=0;
//Recebendo o lado
printf("Digite o tamanho do lado:\n");
scanf("%d", &lado);
//Calculando a área
area = lado * lado;
return 0;
}
O índice de Massa Corporal (IMC) é uma fórmula que indica se um adulto está
acima do peso, se está obeso ou abaixo do peso ideal considerado saudável. A fórmula
para calcular o Índice de Massa Corporal é:
IMC = peso / (altura)2
Implementando em Linguagem C:
Exemplo 22
/*
Exemplo de algoritmo para cálculo do IMC de um adulto
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main() {
//Declarando as variáveis
float peso=0, altura=0;
float quadrado=0, imc=0;
//Recebendo a altura
printf("Digite a altura da pessoa em metros (ex:1.7):\n");
scanf("%f", &altura);
//Calculando o IMC
imc = peso / quadrado;
return 0;
}
Quando usamos %d, estamos dizendo para o compilador que ele deve imprimir um
número inteiro. Já quando colocamos %4d dizemos ele deve imprimir um número inteiro com
no mínimo 4 posições.
Exemplo 23
/*
Limitando o tamanho da impressão na função printf()
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main()
{
printf("Os alunos sao %3d \n", 350);
printf("Os alunos sao %4d \n", 350);
printf("Os alunos sao %5d \n", 350);
getchar();
return 0;
}
Observe o exemplo:
Exemplo 24
/*
Especificando o arredondamento na função printf()
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main()
{
printf(“%.4f\n”, 3456.789);
printf(“%.3f\n”, 3456.789);
printf(“%.2f\n”, 3456.789);
printf(“%.1f\n”, 3456.789);
getchar();
return 0;
}
Observe o exemplo:
Exemplo 25
/*
Especificando o arredondamento e o tamanho na função printf()
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main()
{
printf(“%10.2f %10.2f %10.2f\n”, 8.0, 15.3, 584.13);
printf(“%10.2f %10.2f %10.2f\n”, 834.0, 1500.55, 4890.21);
getchar();
return 0;
}
getchar();
5. Imprimindo Caracteres
A tabela ASCII tem 256 códigos decimais numerados de 0 a 255. Cada código
decimal corresponde à um caracter distinto, por exemplo, o decimal 65 corresponde ao
caracter A, decimal 70 corresponde ao caracter F, o decimal 33 corresponde ao ponto de
exclamação...
Já o trecho abaixo faz o inverso, imprime a letra ‘d’ a partir de seu código
ASCII:
printf(“%c”, 100);
Exemplo 28
/*
Imprimindo Caracteres
Linguagem C - Uma introdução
--
Diego M. Rodrigues
getchar();
return 0;
}
Código Significado
\n Linha Nova (Line Feed)
\b Retrocesso (BackSpace)
\f Salto de Página (Form Feed)
\r Retorno do Carro (cr)
\t Tabulação Horizontal (TAB)
\’ Caracter com apóstrofo
\0 Caracter Nulo ou Fim de String
\x Representação hexadecimal
Exemplo 29
/*
Usando caracteres especiais
Linguagem C - Uma introdução
Diego M. Rodrigues
*/
#include <stdio.h>
int main()
{
//Usando a tabulação
printf(“\tA\tA\tA\tA”);
//Usando o retorno
printf(“abcdefghijklm”);
printf(“\r111”);
getchar();
A tela acima podemos notar as quatro letras “A” separadas por tabulações na
primeira linha. Depois foram puladas duas linhas e a seqüência “abcdefghijklm” foi
impressa na tela. Finalmente foi usando um retrocesso (cursor volta para o início da
linha) e em seguida foi impressa a seqüência “111”. Observe que a seqüência “111”
sobrescreveu a “abcdefghijklm”.
Apenas como revisão, segue uma lista com os operadores já estudados até esse
ponto de nosso curso:
Operador Descrição
++ Incrementa 1
-- Decrementa 1
Até este ponto, você deve ser capaz de entender expressões do tipo:
int nota1 = 7;
int nota2 = 8;
int soma = nota1 + nota2;
//O valor de soma é 15
int contador=1;
contador++;
//O valor de contador é 2
int contador=1;
contador += 5;
contador = -contador;
//O valor de contador é -6
Precedência Operadores
Mais alta ++ --
- (unário)
* / %
Mais baixa + -
1.3 – Parênteses
Implementando em Linguagem C:
Exemplo 30
/*
Exemplo de cálculo de média – Precedência de Operadores
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main() {
//Declarando as variáveis
float mensal=0, bimestral=0, trabalhos=0;
float mediaProvas=0, media=0;
//Calculando a média
mediaProvas = (mensal + bimestral)/2;
media=0.8*mediaProvas + 0.2*trabalhos;
return 0;
}
Implementando em Linguagem C:
Exemplo 31
/*
Exemplo de cálculo de média – Precedência de Operadores
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main() {
//Declarando as variáveis
float mensal=0, bimestral=0, trabalhos=0;
float media=0;
//Calculando a média
media=0.8*((mensal + bimestral)/2) + 0.2*trabalhos;
return 0;
}
Exemplo 32
/*
Exemplo de Precedência de Operadores
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main() {
//Declarando as variáveis
int n=0;
int resto=0;
//Calculando a média
resto = n%10;
resto = resto*2;
return 0;
}
2. Operadores Relacionais
int main() {
//Recebendo num1 e num2
int num1=0, num2=0;
printf("Informe um numero: ");
scanf("%d", &num1);
printf("Informe outro numero: ");
scanf("%d", &num2);
Tela A
Tela B
Tela C
ATENÇÃO
Para testarmos se a variável opcao possui o valor 3, devemos usar opção==3 , nunca
opcao=3 !!
1 – O comando if()
if ( “expressão de teste” ) {
instruções;
instruções;
}
Implementando em Linguagem C:
Exemplo 34
/*
Primeiro exemplo com IF
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main() {
//Declarando as variáveis
int n=0;
//Recebendo a variável n
printf("Digite um numero inteiro menor do que 10:\n");
if ( n >= 10 ) {
printf("\nO numero NAO e menor do que 10!!!\n");
}
return 0;
}
2. O comando else
if ( “expressão de teste” ) {
instruções1;
instruções2;
} else {
instruções3;
instruções4;
}
Implementando em Linguagem C:
Exemplo 35
/*
Exemplo com IF-ELSE – Conversão Fahrenheit-Centígrados
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main() {
//Declarando as variáveis
float f=0, c=0;
//Recebendo a temperatura f
printf("Digite a temperatura em Fahrenheit:\n");
scanf("%f", &f);
//Calculando a conversão
c=( (f-32)*5 )/9;
return 0;
}
O programa que realiza a tarefa acima poderia ser escrito em uma pseudo
linguagem da seguinte forma:
Implementando em Linguagem C:
Exemplo 36
/*
Exemplo com IF-ELSE – Cálculo de média
Linguagem C - Uma introdução
--
Diego M. Rodrigues
*/
#include <stdio.h>
int main() {
//Declarando as variáveis
float mensal=0;
float bimestral=0;
float media=0;
//Calculando a média
media = (mensal+bimestral)/2;
//Mostando mensagens
if ( media >= 5 ) {
printf("\n\nAluno aprovado!");
}
else {
printf("\n\nAluno reprovado!");
}
//Mostrando a média
printf("\nA media do aluno e: %4.1f",media);
3 – O else if
int main() {
//Declarando as variáveis
int n=0;
//Recebendo o número
printf("\nDigite um numero: ");
scanf("%d",&n);
//Mostando mensagens
int main() {
//Declarando as variáveis
float num1=0, num2=0, resultado=0;
char operador;
//Recebendo o número
printf(“\n\nDigite uma expressao no formato: num1 op num2: ”);
scanf(“%f %c %f”, &num1, &operador, &num2);
//Mostando mensagens
if ( operador == ‘+’ ) {
resultado = num1 + num2;
}
else if ( operador == ‘-’ ) {
resultado = num1 - num2;
}
else if ( operador == ‘*’ ) {
resultado = num1 * num2;
}
else if ( operador == ‘/’ ) {
resultado = num1 / num2;
}
//Mostrando o resultado
printf(“\n\nO resultado = %4.1f”,resultado);
Vamos dar outro exemplo de scanf() composto, mas dessa vez com quatro
variáveis: idade(int), peso(float), sexo(char) e saldo(double):
Outra coisa que deve ser ressaltada é que sempre que usamos caracteres
isolados no programa, estes devem estar em ASPAS SIMPLES. Observe como
exemplo o pequeno trecho de código abaixo que recebe um char dentro de uma variável
sexo para testar se o valor digitado foi H ou M.
char sexo;
printf(“\nQual o sexo (H/M)? ”);
scanf(“%c”, &sexo);
if ( sexo == ‘H’) {
printf(“Homem!”);
} else if ( sexo == ‘M’ ) {
printf(“Mulher!”);
} else {
printf(“Opção inválida!”);
}