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 ...




#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "stdlib.h"
void construirmenu();
void cadastrarusuario();
void concatenar();
void matriz(int *);
void main()
{
	clrscr();
	int op,mat[2][3][2];
	construirmenu();
	randomize();
	scanf("%d",&op);
	if(op!=4)
	{
	do
	{
		switch(op)
		{
			case 1:
			{
				cadastrarusuario();
				break;
			}
			case 2:
			{
				concatenar();
				break;
			}
			case 3:
			{
				matriz(&mat[0][0][0]);
				break;
			}
			default: break;
		}
		construirmenu();
		scanf("%d",&op);

	}while(op!=4);
	}
}
void construirmenu()
{
	clrscr();
	for(int i=27;i<=53;i++)
	{
		gotoxy(i,2);printf("*");
		gotoxy(i,7);printf("*");

	}
	for(i=2;i<=7;i++)
	{
		gotoxy(27,i);printf("*");
		gotoxy(53,i);printf("*");
	}
	gotoxy(30,3);printf("1-Cadastrar usuario");
	gotoxy(30,4);printf("2-Concatenar");
	gotoxy(30,5);printf("3-Matriz");
	gotoxy(30,6);printf("4-Sair");
	gotoxy(29,8);printf("Digite a opcao desejada:");
}
void cadastrarusuario()
{
	char nome[2][75];
	int somas,k;
	clrscr();
	for(int j=0;j<=1;j++)
	{
		printf("\nDigite o nome %d:",j+1);
		fflush(stdin);
		gets(nome[j]);
		strupr(nome[j]);
	}
	printf("\n");
	for(j=0;j<=1;j++)
	{
		somas=0;
		printf("\nnome %d: %s",j+1,nome[j]);
		for(int k=0;nome[j][k]!=NULL;k++)
		{
			if ((nome[j][k]=='s')||(nome[j][k]=='S'))
				somas++;
		}
		printf("\nForam encontradas %d ocorrencias de S no nome.",somas);

	}
	printf("\nPressione ENTER");
	getch();
}
void concatenar()
{
	char s1[11],s2[101]="";
	int vezes,max;
	clrscr();
	printf("Digite a String(max.10 caracteres):");
	fflush(stdin);
	gets(s1);
	max=(100/(strlen(s1)));
	printf("Quantas vezes concatenar(entre 1 e %d):",max);
	scanf("%d",&vezes);
	if ((vezes>0)&&(vezes<=max))
	{
		for(int j=0;j<vezes;j++)
		{
			strcat(s2,s1);
		}
		printf("\nString1:%s\nString2:%s",s1,s2);
	}
	else
	{
		printf("O NUMERO DE CONCATENACOES DEVE ESTAR ENTRE 1 E %d!)",max);
	}
	fflush(stdin);
	printf("\nPressione ENTER");
	getch();
}
void matriz(int *ptra)
{
	int matB[2][3],*ptrb,*ptr;
	ptr=ptra;
	ptr+=11;
	ptrb=&matB[0][0];
	for (int j=0;j<12;j++)
	{
		*ptra= rand()%51 +50;
		ptra++;
	}
	ptra-=12;
	for(j=0;j<6;j++)
	{
		*ptrb=((*ptra)+(*ptr));
		ptrb++;
		ptra+=2;
		ptr-=2;
	}
	ptr++;
	ptra=ptr;
	printf("\nMatriz A\n");
	for(j=0;j<2;j++)
	{
		for(int k=0;k<2;k++)
		{
			for(int l=0;l<3;l++)
			{
				printf("%d\t",*ptr);
				ptr+=2;
			}
			printf("\n");
		}
		ptr=ptra+1;
		printf("\n");
	}
	ptrb-=6;
	printf("\nMatriz B\n");
	for(j=0;j<2;j++)
	{
		for(int col=0;col<3;col++)
		{
			printf("%d\t",*ptrb);
			ptrb++;
		}
		printf("\n");
	}
	printf("\nPressione ENTER");
	getch();
}