Você está na página 1de 23

CURSO DE PROGRAMAÇÃO C – AULA 10 – TIPOS DE DADOS

BÁSICOS- PARTE 1
INTEIRO E CARACTERES

INTEIROS

Forma decimal: escrevendo diretamente os números.

Forma octal: escrevendo os números utilizando os algarismos de 0 a 7, começando sempre


com 0.

Forma hexadecimal: começa com “0x” e depois coloca os dígitos de 0 a 9 e depois os


caracteres de “a até a letra e”.

Usaremos a forma decimal ao longo deste curso.

Faça o exemplo abaixo e veja o que acontece na tela do seu computador:


Ele vai imprimir o mesmo valor: 574, são valores int, os valores inteiros positivos e negativos.

Os valores inteiros que podemos utilizar vai depender do compilador, se ele for um que
armazena 4 bits, poderemos utilizar os números acima.

CARACTERES

Entende que você quer guardar caracteres, letras maiúsculas e minúsculas são caracteres
especiais.

Exemplos:
Estamos iniciando a variável c1 com o caractere “a” minúsculo, e a variável c2 com o caractere
“/n”. Assim, apesar de c2 ter na verdade dois caracteres ele é entendido pela linguagem como
sendo apenas um. Tem que estar entre aspas simples.

Se você quiser que o caractere especial “\” apareça, você deve escreve ‘\\’.

O tamanho de um caractere é de 1 byte que corresponde a 8 bits, como já vimos.

Abaixo apresentamos um recorte da tabela ASCII:


Se tratarmos os como inteiro sem sinal ele guardo os valores de 0 a 255, e de 0 a 127 ele
guarda os símbolos que ele representa.

Obs: A maioria das máquinas hoje em dia trabalham com a tabela ASCII.
Existem centenas de tabelas ASCII, isso varia de acordo com o idioma. Os símbolos que irão
aparecer só vai ser padrão de 0 a 127 de 128 em diante, pode funcionar bem quando rodado
em um sistema e em outro pode não funcionar.

CONCLUSÃO: Cada tipo básico int e char possui o seu conteúdo próprio, valor literal, limites,
formato de valor literal e mais de um para caracteres. Existem vários tipos de dados.

CORES NO WINDOWS
Tabela de cores no padrão ANSSI

Devemos declarar o seguinte código antes do main ().

#include < windows.h>


typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;

static int __BACKGROUND = BLACK;


static int __FOREGROUND = LIGHTGRAY;

void textcolor (int color)


{
__FOREGROUND = color;
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
color + (__BACKGROUND << 4));
}

Assim se digitarmos o código abaixo, teremos o resultado que é mostrado logo a seguir.

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

#include <windows.h>
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;

static int __BACKGROUND = BLACK;


static int __FOREGROUND = LIGHTGRAY;

void textcolor (int color)


{
__FOREGROUND = color;
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
color + (__BACKGROUND << 4));
}

int main() {

textcolor (3);
printf("Essa cor sera impressa como o texto, em cor azul.");
return 0;
}

Será impresso dessa forma:


CURSO DE PROGRAMAÇÃO C – AULA 11 – TIPOS DE DADOS
BÁSICOS- PARTE 2
FLOAT, DOUBLE, LONG E OUTROS

FLOAT: Tipo flutuante

Essa variável só guarda valores reais que sejam racionais, não guarda os reais.

Ele possui esses três elementos:

 Sinal = 1 de 1 bit; (parte vermelha);


 Expoente fica na parte de 8 bit (laranja);
 Mantissa = M = -2,02 fica na parte (azul);
 Base = B (fica com um valor fixo geralmente 2 ou 10)
Neste caso a base é o número 10 mas não necessariamente é o 10 que pode ser utilizado.

E o número de casas decimais que o programa vai exibir é determinado por %.2f, assim ele vai
imprimir o número com 2 casas decimais.

Exemplos 1:

Resultado: esse programa vai imprimir na tela os valores seguintes.

Vamos limitar as casas decimais a serem exibidas, veja:

O resultado será:
OUTROS TIPOS DE DADOS DA LINGUAGEM C

Os tipos de dados que vimos até aqui, char, int e float são os principais que vamos utilizar na
programação em c.

TIPOS UNSIGNED

Isso faz com que sejam armazenados somente os valores desses tipos de dados positivos, e
ganhamos 1 bit, que é onde seria guardado o sinal do número e dessa forma dobramos o
número de valores que dá para representar com aquele tipo de variável.

CURSO DE PROGRAMAÇÃO C – AULA 12 – APLICAÇÃO


CADASTRO (PARTE 1)

Vamos desenvolver uma aplicação de cadastro de pacientes de uma clínica de saúde.


Vamos ver também como é utilizado o comando switch.
O CÓDIGO INICIAL É MOSTRADO NA TABELA ABAIXO.

O comando default é o que será executado caso nenhuma das opções seja escolhida.

VERSÃO 1 DO PROGRAMA – CADASTRO DE PACIENTES

#include <stdio.h>

int main(void) {
char opcao = 0;

int idade;

while (1) {
printf("Digite uma opcao: ");
scanf(" %c", &opcao);

if (opcao == 'c' || opcao == 'C') {


printf("ADICIONAR CLIENTE \n");
printf(" - informe a idade: ");
scanf("%d", &idade);

} else if (opcao == 'x') {


printf("REMOVER CLIENTE \n");

} else if (opcao == 'p') {


printf("ADICIONAR PROFISSIONAL \n");

} else if (opcao == 'o') {


printf("REMOVER PROFISSIONAL \n");

} else if (opcao == 's') {


printf("SAIR \n");
break;

} else {
printf("Opcoes disponiveis:\n");
printf("\t c - adicionar cliente \n");
printf("\t x - remover cliente \n");
printf("\t p - adicionar profissional \n");
printf("\t o - remover profissional \n\n");
}
printf("Comando processado\n\n");

printf("Programa terminou\n\n");
return 0;
}

VERSÃO 2 DO PROGRAMA – CADASTRO DE PACIENTES

#include <stdio.h>

int main(void) {
char opcao = 0;

int idade;

while (opcao != 's') {


printf("Digite uma opcao: ");
scanf(" %c", &opcao);

switch (opcao) {
case 'c':
case 'C':
printf("ADICIONAR CLIENTE \n");
printf(" - informe a idade: ");
scanf("%d", &idade);
break;
case 'x':
printf("REMOVER CLIENTE \n");
break;
case 'o':
printf("REMOVER PROFISSIONAL \n");
break;
case 's':
printf("SAIR \n");
break;
default:
printf("Opcoes disponiveis:\n");
printf("\t c - adicionar cliente \n");
printf("\t x - remover cliente \n");
printf("\t p - adicionar profissional \n");
printf("\t o - remover profissional \n\n");
}
printf("Comando processado\n\n");

printf("Programa terminou\n\n");
return 0;
}

O uso do comando break, vai interromper a execução do switch que ele está passando.

CURSO DE PROGRAMAÇÃO C – AULA 13 – VETORES OU


ARRAYS

Cada quadradinho amarelo representa um byte na memória.

EXEMPLO 1:
#include <stdio.h>
int main() {
// 1. declaracao
int sequencia[2];

// 2. cada indice equivale a uma variavel inteira


// - pode atribuir
sequencia[0] = 10;

// - pode ler/atribuir com scanf


printf("Digite um valor inteiro: ");
scanf("%d", &sequencia[1]);

// - pode imprimir com printf


printf("Valores nos indices 0 e 1: %d %d \n", sequencia[0], sequencia[1]);

// - pode usar em expressões


int produto = sequencia[0] * sequencia[1];
}

EXEMPLO 2:
#include <stdio.h>

int main() {
// 1. declaracao com inicializacao
int lista[10] = { 1, 3, -1, -3, 5 };

// 2. usando loop while p/ imprimir


int i = 0;
while (i < 10) {
printf("%d ", lista[i]);
i = i + 1;
}
printf("\n");

// 3. usando loop for p/ imprimir


for (i = 0; i < 10; i+=1) {
printf("%d, ", lista[i]);
//incrementa aqui
}

O resultado será:

Podemos ainda usar o comando FOR que é o mais empregado para isso e listar os índices.
Para inicializar um array com caracteres:

Devemos colocar entre aspas simples.

O espaço em branco depois de printf(“%c “, pais [i]); escreve as letras do vetor com um espaço
em branco.

CURSO DE PROGRAMAÇÃO C – AULA 14 – STRINGS

É um tipo especial de array e quer dizer cadeia de caracteres.


A linguagem C dá suporte ao tipo string, apesar de não ter a variável do tipo string.

EXEMPLO 1:
#include <stdio.h>

int main() {
// array de char
char nome[10] = "Bra";
int i;

// imprime
for (i = 0; i < 6; i ++) {
printf("%c", nome[i]);
}
printf("\n");

// outra forma de imprimir


printf("%s \n", nome);

Observação: declarado “BRA”, entre aspas duplas significa que a string já termina em zero.

EXEMPLO 2:
#include <stdio.h>

int main() {
//1. declaração + inicialização
char teste[50] = "String de Teste!!!";

//2. atribuição (após a inicialização) nao funciona


//teste = "Nova string";

//3.1 lê até um espaço ou quebra de linha


//scanf("%s", teste);

//3.2 le tudo até a quebra de linha


scanf("%[^\n]", teste);

//4. imprime
printf("%s \n", teste);

CURSO DE PROGRAMAÇÃO C – AULA 15 – OPERAÇÕES COM


STRINGS

Nesta aula vamos aprender a fazer a copia de uma string, concatenar, tamanho, comparar.
Atribuir um valor a outra string com outro valor:

No caso acima a string “ARARA” ocupa 6 posições na memória e a string “COELHO”, ocupa 7
posições, então eu estou utilizando 1 posição a mais no array, estamos assim extrapolando a
memória que foi reservada e isso pode causar erros. Pode ser que está posição de memória
invada outras posições de memória importantes.

Assim, se atribuirmos um tamanho maior para o array, não teremos erro, veja:
Concatenar
Temos que utilizar uma operação da biblioteca da linguagem <string.h>

Para copiar utilizamos o “strcpy” e para concatenar, utilizamos o “strcat”.

Dessa forma eu vou concatenar, mas vai ser alterado o valor variável animal1, para concatenar
sem alterar, colocamos outra variável (resultado e fazemos da seguinte forma):

Calcular o tamanho de uma string


A estrutura while, inicia e enquanto a variável tamanho não chegar no índice “0” da variável
animal1, ele não para e o contador tam vai sendo incrementado de 1 em 1, chegando no índice
0 ele imprime na tela o tamanho do array.
Outra maneira mais fácil seria a seguinte:

O comando “strlen”, recebe o tamanho da string (animal1), e a variável tam exibe na tela.

Comparar duas strings


O comando “strcmp” realiza a comparação das variáveis. E retorna que arara, vem antes de
tucano. Este comando diferencia minúsculas de maiúsculas, assim antes de utilizarmos em
uma pesquisa ou comparação, devemos conter ou tudo para maiúsculo ou para minúsculo.

EXEMPLO 1:
#include <stdio.h>
#include <string.h>

int main() {
char animal1[128] = "arara"; //tamanho 6 na memoria
char animal2[128] = "tucano";
char resultado[128] = "";

//1. COPIAR/ATRIBUIR
//animal1 = "coelho";
printf("Strings: %s , %s \n", animal1, animal2);

strcpy(animal1, "coelho"); //string copy

printf("Strings: %s , %s \n", animal1, animal2);

//2. CONCATENAR
//animal1 = animal1 + animal2
strcpy(resultado, animal1);
strcat(resultado, animal2); //string concatenation

printf("Strings concatenadas = %s \n", resultado);


printf("Strings: %s , %s \n", animal1, animal2);
}

EXEMPLO 2:
#include <stdio.h>
#include <string.h>
int main() {
char animal1[128] = "arara";
char animal2[128] = "tucano"; //teste com: "arara" e "Arara"

//1. TAMANHO
int tam = 0;
//while (animal1[tam] != 0) {
// tam += 1;
//}

tam = strlen(animal1); // string length


printf("Tamanho de animal1 = %d \n", tam);

//2. COMPARACAO
int resultado_comparacao = strcmp(animal1, animal2);

if (resultado_comparacao == 0) {
printf("Strings iguais! \n");

} else if (resultado_comparacao < 0) {


printf("String %s vem antes! \n", animal1);

} else {
printf("String %s vem antes! \n", animal2);

Você também pode gostar