Taller semana 15

 avatar
unknown
plain_text
2 years ago
4.5 kB
5
Indexable
/*
#include <iostream>
#include <conio.h>

using namespace std;
using namespace System; //Random

void GenerayLista_Paralelos(char* arrGripe, char* arrTos, int* arrPeso, int N) {
	Random r;
	int aux;
	//gripe
	for (int i = 0; i < N; i++) {
		aux = r.Next(0, 2); // 0 y 1
		switch (aux) {
		case 0:
			arrGripe[i] = 'N';
			break;
		case 1:
			arrGripe[i] = 'S';
			break;
		}
	}
	//tos
	for (int i = 0; i < N; i++) {
		aux = r.Next(0, 2); // 0 y 1
		switch (aux) {
		case 0:
			arrTos[i] = 'N';
			break;
		case 1:
			arrTos[i] = 'S';
			break;
		}
	}
	//peso
	for (int i = 0; i < N; i++) {
		arrPeso[i] = r.Next(30, 61);
	}
}

void Imprimir(char* arrGripe, char* arrTos, int* arrPeso, int N) {
	cout << "Peso\t\tGripe\t\tTos\n";
	for (int i = 0; i < N; i++) {
		cout << arrPeso[i] << "\t\t" << arrGripe[i] << "\t\t" << arrTos[i] << "\n";
	}
}

void Porcentaje_gripe_tos(char* arrGripe, char* arrTos, int* arrPeso, int N) {
	int cc = 0;
	float porcentaje;
	for (int i = 0; i < N; i++) {
		if (arrGripe[i] == 'S' && arrTos[i] == 'S') {
			cc++;
		}
	}
	porcentaje = (cc * 100.00) / N;
	cout << cc << " Tuvieron gripe y tos simultaneamente\n";
	cout << porcentaje << " % de alumnos tuvieron gripe y tos simultaneamente\n";
}

void Promedio_pesos(char* arrGripe, char* arrTos, int* arrPeso, int N) {
	int cc = 0;
	float porcentaje;
	for (int i = 0; i < N; i++) {
		if (arrGripe[i] == 'S' || arrTos[i] == 'S') {
			cc++;
		}
	}
	porcentaje = (cc * 100.00) / N;
	cout << cc << " Tuvieron gripe o tos\n";
	cout << porcentaje << " % de alumnos tvieron gripe o tos\n";
}

void Listado_ordenado(char* arrGripe, char* arrTos, int* arrPeso, int N) {
	// Ordenamiento burbuja - Bubble sort
	int aux_peso;
	char aux_tos;
	char aux_gripe;
	for (int i = 0; i < N - 1; i++) {
		for (int j = i + 1; j < N; j++) {
			if (arrPeso[i] < arrPeso[j]) {
				aux_peso = arrPeso[i];
				arrPeso[i] = arrPeso[j];
				arrPeso[j] = aux_peso;

				aux_gripe = arrGripe[i];
				arrGripe[i] = arrGripe[j];
				arrGripe[j] = aux_gripe;

				aux_tos = arrTos[i];
				arrTos[i] = arrTos[j];
				arrTos[j] = aux_tos;
			}
		}
	}
}

int main() {
	int N;
	char* arrGripe;
	char* arrTos;
	int* arrPeso;

	do {
		cout << "Ingrese N: ";
		cin >> N;
	} while (!(N > 0 && N <= 20)); //N es mayor a 0 y menor o igual a 20

	arrGripe = new char[N];
	arrTos = new char[N];
	arrPeso = new int[N];
	
	GenerayLista_Paralelos(arrGripe,arrTos,arrPeso,N);
	Imprimir(arrGripe, arrTos, arrPeso, N);
	Porcentaje_gripe_tos(arrGripe, arrTos, arrPeso, N);
	Promedio_pesos(arrGripe, arrTos, arrPeso, N);
	Listado_ordenado(arrGripe, arrTos, arrPeso, N);
	Imprimir(arrGripe, arrTos, arrPeso, N);

	getch();
	return 0;
}
*/
#include <iostream>
#include <conio.h>

using namespace std;
using namespace System;

void generarMatriz(int** matriz, int N) {
	Random r;
	for (int j = 0; j < N; j++) {
		for (int i = 0; i < N; i++) {
			matriz[j][i] = r.Next(0, 10);//0-9
		}
	}
}

void Imprimir(int** matriz, int N) {
	system("cls");
	for (int j = 0; j < N; j++) {
		for (int i = 0; i < N; i++) {
			cout << matriz[j][i];
		}
		cout << endl;
	}
}

void HallarPatron(int** matriz, int N,int patron) {
	int u, d, c,cc=0;
	u = patron % 10; //123
	d = (patron % 100) / 10;
	c = patron / 100;
	for (int j = 0; j < N; j++) {
		for (int i = 0; i < N; i++) {
			if (i<= N-3 && matriz[j][i] == c && matriz[j][i + 1] == d && matriz[j][i + 2] == u) {
				Console::SetCursorPosition(i, j);
				Console::ForegroundColor = ConsoleColor::DarkYellow;
				cout<<matriz[j][i];
				Console::SetCursorPosition(i+1, j);
				Console::ForegroundColor = ConsoleColor::DarkYellow;
				cout<<matriz[j][i+1];
				Console::SetCursorPosition(i+2, j);
				Console::ForegroundColor = ConsoleColor::DarkYellow;
				cout<<matriz[j][i+2];
				Console::ForegroundColor = ConsoleColor::White;
				cc++;
			}
		}
	}
	Console::SetCursorPosition(0,N);
	cout << "El patron " << patron << " se repite : " << cc;
}

int main() {
	int N;
	int patron;
	do {
		cout << "Ingrese N: ";
		cin >> N;
	} while (!(N>0 && N<=30));
	//Defiendo e inicializando una matriz
	int** matriz = new int* [N];
	for (int i = 0; i < N; i++) {
		matriz[i] = new int[N];
	}
	generarMatriz(matriz, N);
	Imprimir(matriz, N);
	cout << "\nIngrese el patron numerico: ";
	cin >> patron;
	HallarPatron(matriz, N, patron);


	getch();
	return 0;
}
Editor is loading...