Taller Semana 14
unknown
plain_text
2 years ago
7.1 kB
15
Indexable
/* #include <iostream> #include <conio.h> using namespace std; using namespace System; struct Llamada { int oficina; int minutos; int tipo_llamada; }; void GenerarLlamadas(Llamada* arrLlamadas, int N) { Random r; //recorre el arreglo llamadas for (int i = 0; i < N; i++) { arrLlamadas[i].oficina = r.Next(1, 4); arrLlamadas[i].minutos = r.Next(1, 31); arrLlamadas[i].tipo_llamada = r.Next(1, 4); } } void Imprimir(Llamada* arrLlamadas, int N) { cout << "Oficina\t" << "| Cant. Minutos\t" << "| Tipo de llamada|\n"; cout << "-----------------------------------------|\n"; for (int i = 0; i < N; i++) { cout <<" " << arrLlamadas[i].oficina << "\t| " << arrLlamadas[i].minutos << "\t\t| " << arrLlamadas[i].tipo_llamada << endl; cout << "-----------------------------------------|\n"; } } void OficinasconMayorMinutos(Llamada* arrLlamadas, int N) { //sumatorias de llamadas 1, 2, 3 //1 Logistica //2 Recursos Humanos //3 Ventas int arrMinutosxOficina[3] = { 0,0,0 }; int arrMinutosOficinaVentasxTipoLlamada[3] = { 0,0,0 }; float contadorxOficinaVentas[3] = { 0,0,0 }; cout << "*************" << endl; for (int i = 0; i < N; i++) { switch (arrLlamadas[i].oficina) { case 1: arrMinutosxOficina[0] = arrMinutosxOficina[0] + arrLlamadas[i].minutos; break; case 2: arrMinutosxOficina[1] += arrLlamadas[i].minutos; break; case 3: arrMinutosxOficina[2] += arrLlamadas[i].minutos; //Calcular el nro de llamadas por tipo de llamadas en la Oficina Ventas switch (arrLlamadas[i].tipo_llamada) { case 1: arrMinutosOficinaVentasxTipoLlamada[0] += arrLlamadas[i].minutos; contadorxOficinaVentas[0]++; break; case 2: arrMinutosOficinaVentasxTipoLlamada[1] += arrLlamadas[i].minutos; contadorxOficinaVentas[1]++; break; case 3: arrMinutosOficinaVentasxTipoLlamada[2] += arrLlamadas[i].minutos; contadorxOficinaVentas[2]++; break; } break; } } cout << "La oficina Logistica tiene: " << arrMinutosxOficina[0] << " minutos en total" << endl; cout << "La oficina Recursos Humanos tiene: " << arrMinutosxOficina[1] << " minutos en total" << endl; cout << "La oficina Ventas tiene: " << arrMinutosxOficina[2] << " minutos en total" << endl; int mayor_minutos; //recorrer arrMinutosxOficina para calcular el maximo de minutos for (int i = 0; i < 3; i++) { if (i == 0) { mayor_minutos = arrMinutosxOficina[0]; // suponiendo que oficina 1 tiene mayor minutos } else { if (arrMinutosxOficina[i] > mayor_minutos) { mayor_minutos = arrMinutosxOficina[i]; // guardamos el valor de minutos de la oficina con mayor minutos } } } cout << "Las oficinas con " << mayor_minutos << " minutos son:" << endl; //Se los minutos de cada oficina con el maximo de minutos (mayor_minutos) //Si es igual a mayor_minutos se imprime el nombre de la oficina for (int i = 0; i < 3; i++) { if (arrMinutosxOficina[i] == mayor_minutos) { switch (i) { case 0: cout << "Logistica" << endl; break; case 1: cout << "Recursos Humanos" << endl; break; case 2: cout << "Ventas" << endl; break; } } } cout << endl; cout << "La Oficina Ventas tiene: " << endl; cout << "En Local un promedio de " << arrMinutosOficinaVentasxTipoLlamada[0] / contadorxOficinaVentas[0] << " minutos\n"; cout << "En Celular un promedio de " << arrMinutosOficinaVentasxTipoLlamada[1] / contadorxOficinaVentas[1] << " minutos\n"; cout << "En Internacional un promedio de " << arrMinutosOficinaVentasxTipoLlamada[2] / contadorxOficinaVentas[2] << " minutos\n"; } void MontoTotalxTipoLlamada(Llamada* arrLlamadas, int N) { float montototalxtipo_llamada[3] = { 0,0,0 }; //Tarifas //1->Local -> 0,30 //2->Celular -> 0.80 //3->Internacional ->1.50 cout << "**************" << endl; for (int i = 0; i < N; i++) { switch (arrLlamadas[i].tipo_llamada) { case 1: montototalxtipo_llamada[0] = montototalxtipo_llamada[0] + (0.30 * arrLlamadas[i].minutos); break; case 2: montototalxtipo_llamada[1] += (0.80 * arrLlamadas[i].minutos); break; case 3: //montototalxtipo_llamada[0] = montototalxtipo_llamada[0] + (1.50 * arrLlamadas[i].minutos); montototalxtipo_llamada[2] += (1.50 * arrLlamadas[i].minutos); break; } } cout << "Tipo de llamada local tiene un total de: " << montototalxtipo_llamada[0]<< " soles" << endl; cout << "Tipo de llamada Celular tiene un total de: " << montototalxtipo_llamada[1] <<" soles" << endl; cout << "Tipo de llamada Internacional tiene un total de: " << montototalxtipo_llamada[2] <<" soles" << endl; } int main() { int N = 50; Llamada* arrLlamadas = new Llamada[N]; GenerarLlamadas(arrLlamadas, N); Imprimir(arrLlamadas, N); OficinasconMayorMinutos(arrLlamadas, N); MontoTotalxTipoLlamada(arrLlamadas, N); getch(); return 0; } */ /* #include <iostream> #include <conio.h> using namespace std; using namespace System; void GenerarTerreno(int** terreno, int f, int c) { Random r; //recorrer filas, luego por cada fila se recorren las columnas for (int j = 0; j < f; j++) { for (int i = 0; i < c; i++) { terreno[j][i] = r.Next(1,4);//1 2 3 } } } void ImprimirTerreno(int** terreno, int f, int c) { for (int j = 0; j < f; j++) { for (int i = 0; i < c; i++) { Console::SetCursorPosition(i, j); Console::BackgroundColor = ConsoleColor::White; Console::ForegroundColor= ConsoleColor::Black; cout << terreno[j][i]; } cout << endl; } } void HallarGuaridaTopos(int** terreno, int f, int c) { int cc = 0; for (int j = 1; j < f-1; j++) { for (int i = 1; i < c-1; i++) { if (terreno[j - 1][i] == 3 && terreno[j][i - 1] == 2 && terreno[j][i + 1] == 2 && terreno[j + 1][i] == 1 ) { //arriba Console::SetCursorPosition(i, j-1); Console::BackgroundColor = ConsoleColor::Green; cout << terreno[j - 1][i]; //izquierda Console::SetCursorPosition(i-1, j); Console::BackgroundColor = ConsoleColor::Green; cout << terreno[j][i-1]; //derecha Console::SetCursorPosition(i+1, j); Console::BackgroundColor = ConsoleColor::Green; cout << terreno[j][i+1]; //abajo Console::SetCursorPosition(i, j+1); Console::BackgroundColor = ConsoleColor::Green; cout << terreno[j + 1][i]; Console::SetCursorPosition(i, j); Console::BackgroundColor = ConsoleColor::Yellow; terreno[j][i] = 0; cout<<0; Console::SetCursorPosition(0, 14+cc); cout << "Hay un topo en fila = " << j + 1 << " y en columna = " << i + 1 << endl; cc++; } } } } int main() { //10 filas //15 columnas int f = 10, c = 15; int** terreno = new int* [f]; for (int i = 0; i < f; i++) { terreno[i] = new int[c]; } GenerarTerreno(terreno, f, c); ImprimirTerreno(terreno, f, c); HallarGuaridaTopos(terreno, f, c); getch(); return 0; } */
Editor is loading...