Вы находитесь на странице: 1из 4

Linguagem C– Aula 07 – Prof.

Wellington Telles
Ordenação
Pelo nome significa colocar em ordem. Há vários métodos de ordenação e o que muda de um para outro é o tempo
de ordenação que pode variar de acordo com tipo de dado a ser ordenado.

Bubble-Sort
Que é o método de bolha aonde consiste em comparar o primeiro dado com o segundo e um sendo maior que o
outro a posição é trocada.

POSIÇÃO NO VETOR 0 1 2 3 4 5 6

DADOS NO VETOR 7 5 2 9 1 5 0

VERDADEIRO, ENTÃO TROCA DE POSIÇÃO


COMPARA 7>5

5 7 2 9 1 5 0

COMPARA
5>2 VERDADEIRO, ENTÃO TROCA DE POSIÇÃO

2 7 5 9 1 5 0

COMPARA
FALSO, ENTÃO NÃO TROCA
2>9

2 7 5 9 1 5 0

COMPARA
2 > 1 VERDADEIRO, ENTÃO TROCA DE POSIÇÃO

1 7 5 9 2 5 0

COMPARA
1>5 FALSO, ENTÃO NÃO TROCA

1 7 5 9 2 5 0

COMPARA
1 > 0 VERDADEIRO, ENTÃO TROCA DE POSIÇÃO

0 7 5 9 2 5 1

LINGUAGEM C - AULA 07 1 DE 4
Dessa forma foi possível ajustar o menor valor na primeira posição do vetor (posição zero). Para ordenar os demais
valores vamos precisar de uma segunda estrutura de repetição que comece com segunda posição do vetor (posição
um) e assim que a segunda estiver em posição passamos a terceira e as demais.

O código-fonte do programa fica da seguinte maneira:


#include <stdio.h>
#include <stdlib.h>
#define tamanho 10
int main(int argc, char *argv[]) {
int vetor[tamanho];
int i, j, aux;
printf("Entre com os dez valores:\n");
for (i=0;i<tamanho-1;i++) //Entrada
scanf("%d",&vetor[i]);
for (i=0;i<tamanho;i++)// Mostra o Vetor
printf("%d ",vetor[i]);
printf("\n"); // Pula uma linha
// Ordenação Bubble Sort
for (i=0;i<tamanho-1;i++){
for (j=(i+1);j<tamanho;j++)
{
if (vetor[i]>vetor[j]){
aux = vetor[i];
vetor[i] = vetor[j];
vetor[j] = aux;
}
}
}
for (i=0;i<tamanho;i++)// Mostra o Vetor
printf("%d ",vetor[i]);
return 0;
}

LINGUAGEM C - AULA 07 2 DE 4
Sortear um número – Valores Aleatórios
O sorteio de um número é também chamado número ALEATÓRIO

A função que faz o sorteio se chama: rand

O valor aleatório fica na faixa entre 0 e RAND_MAX que é definido dentro da biblioteca stdlib.h

Por ao sortearmos um número devemos dar um % para pegar o resto da divisão do número gerado por rand()
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i;
printf("Gerando 10 valores aleatorios:\n\n");
for (i = 0; i < 10; i++)
{
/* gerando valores aleatórios entre zero e 100 */
printf("%d ", rand() % 100);
}
getch();
return 0;
}
Perceba que ao sortear, sempre os mesmos números são sorteados. Resolvendo isso:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>//necessário p/ função time()
int main(int argc, char *argv[]) {
int i;
printf("Gerando 10 valores aleatorios:\n\n");
srand(time(NULL));
for (i = 0; i < 10; i++)
{
/* gerando valores aleatórios entre zero e 100 */
printf("%d ", rand() % 100);
}
getch();
return 0;
}

LINGUAGEM C - AULA 07 3 DE 4
Funções
Funções são as estruturas que permitem ao usuário separar seus programas em blocos. Se não as tivéssemos, os
programas teriam que ser curtos e de pequena complexidade. Para fazermos programas grandes e complexos temos
de construí-los bloco a bloco.
#include <stdio.h>
#include <stdlib.h>
int quadrado (int a)
{
return (a*a);
}
int main(int argc, char *argv[]) {
int numero, resposta;
printf("Entre com um numero: ");
scanf ("%d",&numero);
resposta=quadrado(numero);
printf("O quadrado de %d vale: %d",numero, resposta);
return 0;
}
No programa acima foi criada a função quadrado que tem por objetivo elevar um número ao quadrado.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int dado()
{
return (1 + rand()%6);
}
int main(int argc, char *argv[]) {
srand(time(NULL));
int i;
int dados[9]; // de 0 a 9
for (i = 0; i < 10; i++)
dados[i] = dado();
// Mostra os dados
for (i = 0; i < 10; i++)
printf("Dado numero %d tem o valor %d\n",i,dados[i]);
return 0;
}
Esse programa sorteio um dado e grava em um vetor.
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int main(int argc, char *argv[]) {
gotoxy(10,5);
printf("Posicionar cursor");
return 0;
}

LINGUAGEM C - AULA 07 4 DE 4