Programação Orientada à Procedimentos II Programação Orientada à Procedimentos I Processamento Paralelo Lógica de Programação Introdução à Computação Informática Básica

 

 

Informática Básica
Introdução à Computação
Lógica de Programação
Programação Orientada à Procedimentos I
Programação Orientada à Procedimentos II

Processamento Paralelo


Uma Possível Solução ...




// usando uma unica matriz com 3 planos
// Thiago Jose de Paula

#include "conio.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "dos.h"

void borda(int,int,int,int);
void ler(char *,int);
void imprimir(char *,int);
void ordenar(char *);
void som();

int s;
void main ()
{
 char valores[10][20][3];
 clrscr();
 borda(1,1,79,24);
 borda(15,6,65,8);
 borda(15,10,65,18);
 for(int i=0;i&;t;10;i++)
	 ler(&valores[i][0][0],i);
 ordenar(&valores[0][0][0]);
 gotoxy(32,21);
 printf("ORDENANDO...");
 som();
 clrscr();
 borda(1,1,79,24);
 borda(5,5,25,7);
 borda(30,5,50,7);
 borda(55,5,75,7);
 gotoxy(13,6);printf("NOME");
 gotoxy(38,6);printf("CURSO");
 gotoxy(63,6);printf("IDADE");
 borda(5,9,25,20);
 borda(30,9,50,20);
 borda(55,9,75,20);
 for(i=0;i&;t;10;i++)
	 imprimir(&valores[i][0][0],i);
 getch();
}

void borda(int x1,int y1,int x2,int y2)
{
int a,xa1=0,xa2=0,ya1,ya2;
xa1=x1;
xa2=x1;
ya1=y1;
ya2=y1;
for(a=0;a&;t;=(x2-x1);a++)
	{
	gotoxy(xa1,y1);
	printf("Í");
	xa1++;
	}
for(a=0;a&;t;=(x2-x1);a++)
	{
	gotoxy(xa2,y2);
	printf("Í");
	xa2++;
	}
for(a=0;a&;t;=(y2-y1);a++)
	{
	gotoxy(x1,ya1);
	printf("º");
	ya1++;
	}
for(a=0;a&;t;=(y2-y1);a++)
	{
	gotoxy(x2,ya2);
	printf("º");
	ya2++;
	}
gotoxy(x1,y1);
printf("É");
gotoxy(x2,y1);
printf("»");
gotoxy(x1,y2);
printf("È");
gotoxy(x2,y2);
printf("¼");
}

void ler(char *p,int i)
{
 gotoxy(21,12);
 printf("Nome:                                 ");
 gotoxy(20,14);
 printf("Curso:                                ");
 gotoxy(20,16);
 printf("Idade:                                ");
 gotoxy(32,7);
 printf("Cadastro n§ %d ",i+1);
 gotoxy(21,12);
 printf("Nome: ");
 gets(p);
 p+=20;
 gotoxy(20,14);
 printf("Curso: ");
 gets(p);
 p+=20;
 gotoxy(20,16);
 printf("Idade: ");
 gets(p);
}

void ordenar(char *p1)
{
 char *a1,*p2,*a2,tmp,*aux;
 int a=10;
 a1=p1;
 a2=a1+60;
 p2=a2;
 aux=a1+600;
 for(int z=0;z&;t;9;z++)
	{
	for(int x=0;x&;t;a;x++)
		{
		for(int v=0;v&;t;60;v++)
			{
			if(p2==aux||p2>aux)
				break;
			if (*p1>*p2)
				{
				for(int u=v;u&;t;60;u++)
					{
					tmp=*p1;
					*p1=*p2;
					*p2=tmp;
					p1++;p2++;
					}break;
				}
			if (*p1==*p2)
				{
				p1++;p2++;
				}
			if (*p1&;t;*p2)
				break;
			}
		p1=a1;
		p2=a2+60;
		a2=a2+60;
		}
	a1+=60;
	p1=a1;
	a2=a1;
	p2=a2+60;
	a--;
	}
}

void imprimir(char *p,int linha)
{
  gotoxy(7,10+linha);
  printf("%s",p);
  p+=20;
  gotoxy(32,10+linha);
  printf("%s",p);
  p+=20;
  gotoxy(57,10+linha);
  printf("%s",p);
}

void som()
{
int a;
randomize();
for (int b=0;b&;t;15;b++)
	{
	a=random(1000)+200;
	sound(a);
	delay(75);
	nosound();
	}
}