Dev - C++ - agregar la funcion de encontrar el mayor de n números donde el primero sea el mayor de esos números

 
Vista:

agregar la funcion de encontrar el mayor de n números donde el primero sea el mayor de esos números

Publicado por JONATHAN (1 intervención) el 09/07/2021 15:58:25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
//Manejo de arreglos intergrado,ciclos,condiciones y seleccion multiple
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
//Creacion de nuestras funciones
int menu();
void capturains(float [99]);  //Funcion prototipo para capturar informacion en un arreglo
void listains(float [99]);
void ejecuta(float [99]);   //Funcion para mostrar informacion capturada en un arreglo
void codigo(float [99]);   //Funcion para generar código ensamblador
void guiains(float [99]);
void setins(float [99]);   //Funcion para mostrar el set de instrucciones
 
 
float instrucciones[99],inst;
int opcion,pc=0;
 
int main()
{
while((opcion=menu())<7)
	{
		switch(opcion)
		{
			case 1://Captura de informacion en un arreglo
			      printf("\nEstas en la opcion de captura");
			      capturains(instrucciones);
				  break;
			case 2://Lista informacion de un arreglo
			       printf("\nEstas en la opcion muestra informacion");
				   listains(instrucciones);
				   break;
			case 3:
				  printf("\nInicia ejecucion del programa");
				  ejecuta(instrucciones);
				  break;
			case 4:
				  printf("\nCodigo ensamblador");
				  codigo(instrucciones);
				  break;
			case 5:
				 printf("\nGuia de simulacion de SIMPLECOMPUTER");
				 guiains(instrucciones);
				 break;
		    case 6:
			     printf("\nSet de instrucciones de SIMPLECOMPUTER");
		         setins(instrucciones);
				 break;
			}
		printf("\nTeclea cualquier tecla para continuar");
		getche();
	}
}
int menu()
{
	system("cls");
	printf("\n\tBIENVENIDO A  NUESTRA COMPUTADORA SIMPLECOMPUTER\n");
	printf("\n\t\t\t1.-Captura de programa en codigo de maquina");
	printf("\n\t\t\t2.-Lista programa en codigo de maquina");
	printf("\n\t\t\t3.-Ejecuta programa");
	printf("\n\t\t\t4.-Genera Codigo Ensamblador");
	printf("\n\t\t\t5.-Guia de simulacion de SIMPLECOMPUTER");
	printf("\n\t\t\t6.-Set de instrucciones de SIMPLECOMPUTER");
	printf("\n\t\t\t8.-Save file");
	printf("\n\t\t\t9.-Exit");
	printf("\n\n\t\t\tSelecciona una opcion >");
	scanf("%d",&opcion);
	return(opcion);
}
void capturains(float x[99])
{
	float ins;
	printf("\nCaptura las instrucciones en codigo de maquina");
	do{
		printf("\n[%d]?",pc);
		scanf("%f",&x[pc]);
		ins=x[pc];
		pc++;
	}while(ins!=999);
}
 
void listains(float x[99])
{   int i;
	for(i=0;i<pc-1;i++)//para variar una instruccion especifica
	printf("\n[%d] %5.0f",i,x[i]);
}
void ejecuta(float memoria [99])
{
	int ci=0,o=0,d=0;
	float acumulador;
	listains(memoria);
	while(ci<pc-1)
	{
		o=memoria[ci]/100;
		d=memoria[ci]-o*100;
 
	switch(o)
	{
		case 10: printf("\n[%d] read(%d)(?)>",ci,d);
		         scanf("%f",&memoria[d]);
		         listains(memoria);
		         break;
		case 11: //write
		         printf("\n[%d] write(%d)(?)>",ci,d);
		         printf("%5.0f\n",memoria[d]);
		         listains(memoria);
		         break;
		case 20://load carga en el acumulador el contenido de una direccion especifica de memoria
		         printf("\n[%d] load(%d)(?)>",ci,d);
		         acumulador=memoria[d];
		         break;
		case 21: //store guarda el contenido del acumulador en una direccion especifica de memoria
		         memoria[d]=acumulador;
				 break;
		case 30: //add
		        acumulador=acumulador+memoria[d];
				 break;
		case 31: //sub
		        acumulador=acumulador-memoria[d];
				 break;
		case 32: //div
		        acumulador=acumulador/memoria[d];
				 break;
		case 33: //mul
		        acumulador=acumulador*memoria[d];
				 break;
		case 40://branch
		        ci=d-1;
				 break;
		case 41://branchneg
		        while(acumulador<0)
		        {
		        	ci=d-1;
				}
				 break;
		case 42://branchcero
		        while(acumulador==0)
		        {
		        	ci=d-1;
				}
				  break;
		case 43://halt
 
				  break;
	}
	getche();
	ci=ci+1;
	}
}
 
void guiains(float x[99])
{
	printf("\n****************************************************************");
	printf("\n***Teclee su programa linea por linea una a la vez***\n***Yo SIMPLECOMPUTER tecleare el numero de la localidad seguido del signo de interrogacion (?)***\n***Usted luego teclea la instruccion para esa localidad***\n***Teclee el sentinela 9999 para terminar su programa***");
}
 
 
void codigo(float memoria[99])
{
	int ci=0,o=0,d=0;
	listains(memoria);
	printf("\nCodigo ensambador\n");
 
	while(ci<pc-1)
	{
		o=memoria[ci]/100;
		d=memoria[ci]-(o*100);
	switch(o)
	{
		case 10: printf("\n[%d]> read(%d)",ci,d);
				 break;
		case 11: //writte
				 printf("\n[%d]> writte(%d)",ci,d);
			 	 break;
		case 20://load carga en el acumulador el contenido de una direccion especifica de memoria
				 printf("\n[%d]> load(%d)",ci,d);
				 break;
		case 21://store guarda el contenido del acumulador en una direccion especifica en memeoria
				 printf("\n[%d]> store(%d)",ci,d);
				 //memoria[d]=acumulador;
				 break;
		case 30://add
				 printf("\n[%d]> add(%d)",ci,d);
				 //acumulador=acumulador+memoria[d];
				 break;
		case 31://sub
				 printf("\n[%d]> sub(%d)",ci,d);
				 //acumulador=acumulador-memoria[d];
				 break;
		case 32://div
		 		 printf("\n[%d]> div(%d)",ci,d);
				 //acumulador=acumulador/memoria[d];
				 break;
		case 33://mul
				 printf("\n[%d]> mul(%d)",ci,d);
				 //acumulador=acumulador*memoria[d];
				 break;
		case 40://branch transfiere la ejecucion a una direccion especifica del programa
				 printf("\n[%d]> branch(%d)",ci,d);
				 //ci=d-1;
				 break;
		case 41://branchneg
				 printf("\n[%d]> branchneg(%d)",ci,d);
				 //if(acumulador<0){
				 //	ci=d-1;
				 //}else;
				 break;
		case 42://branchzero
				 printf("\n[%d]> branchzero(%d)",ci,d);
				 //if(acumulador==0){
				 //	ci=d-1;
				 //}else;
				 break;
		case 43://halt
				 printf("\n[%d]> halt",ci);
				 //ci=pc+1;
				 break;
		case 00:
				 printf("\n[%d]> dato(%d)",ci,d);
				 break;
	}
	getche();
	ci++;
}
}
 
void setins(float x[99])
{
	printf("\n1.-Read 10\t\tLee una palabra de la terminal y la coloca en una posicion especifica en memoria");
	printf("\n2.-Writte 11\t\tEscribe una palabra desde una posicion especifica en memoria a la terminal");
	printf("\n3.-Load 20\t\tCarga una palabra de una posicion especifica en memoria del acumulador");
	printf("\n4.-Store 21\t\tAlmacena una palabra del acumulador a una posicion especifica en memoria");
	printf("\n5.-Add 30\t\tAñade una palabra de una posicion especifica en memoia a la palabra en el acumulador");
	printf("\n6.-Sub 31\t\tResta una palabra de una posicion especifica en donde la palabra existe en el acumulador");
	printf("\n7.-Div 32\t\tDivide una palabra en el acumulador entre palabras existentes en la memoria");
	printf("\n8.-Mul 33\t\tMultiplica una palabra de memoria por el acumulador, resultando en el acumulador");
	printf("\n9.-Branch 40\t\tSe desvia una posicion especifica en memoria");
	printf("\n10.-Branchneg 41\tSe desvia a una posicion en memoria si el acumulador es NEGATIVO");
	printf("\n11.-Branchzero 42\tSe desvia a una posicion en memoriasi el acumulador es CERO");
	printf("\n12.-Halt 43\t\tSe detiene, es decir,el programa ha terminado su tarea");
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder