guÍa practica nº 1 de turbo c++

15
TALLER DE INFORMÁTICA GUÍA PRACTICA Nº 4 DE C++ Arreglos Ejemplo Nº 1: - Escribir un algoritmo que permita la carga de un vector “Vec1” de 10 elementos. Nota: Considerar que los elementos del vector son números enteros. 1- #include <iostream> 2- using namespace std; 3- int main() 4- { 5- int Vec1[10]; // Declaración del arreglo Vec1 de una // dimensión y diez elementos enteros. 6- int i; 8- for(i=0;i<10;i++) 9- { 10- cout << "ingrese el elemento " << i << ":"; 11- cin >> Vec1[i]; 12- } 13- return (0); 14- } Ejercicio Nº 1: Modificar el programa anterior para que muestre los elementos del vector una vez finalizada la carga. Ejercicio Nº 2: Escribir un algoritmo que permita la carga de un vector “Vector2” de 10 elementos y busque cuantas veces aparece un numero N en el mismo. El numero N a buscar se ingresará por teclado una vez finalizada la carga del vector. Nota: no modificar el vector. Ejercicio Nº 3: Modificar el programa del ejercicio 1 para que permita buscar el elemento mayor, el menor y calcule el promedio de los elementos. Observación: Nótese la diferencia entre el método de búsqueda del elemento mayor de un vector que se encuentra cargado y la búsqueda del elemento mayor a medida que se van ingresando una serie de escalares por teclado. Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 1 / 15 INICIO Vec1[10] Vec1[i] Ingrese el elemento i: FIN i = i+1 i < 10 SI NO i = 0

Upload: others

Post on 04-Jul-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

GUÍA PRACTICA Nº 4 DE C++Arreglos

Ejemplo Nº 1:

- Escribir un algoritmo que permita la carga de un vector “Vec1” de 10 elementos.Nota: Considerar que los elementos del vector son números enteros.

1- #include <iostream>2- using namespace std;

3- int main()4- {5- int Vec1[10]; // Declaración del arreglo Vec1 de una

// dimensión y diez elementos enteros.6- int i;

8- for(i=0;i<10;i++)9- {10- cout << "ingrese el elemento " << i << ":";11- cin >> Vec1[i];12- }

13- return (0);14- }

Ejercicio Nº 1:

Modificar el programa anterior para que muestre los elementos del vector una vez finalizada la carga.

Ejercicio Nº 2:

Escribir un algoritmo que permita la carga de un vector “Vector2” de 10 elementos y busque cuantas veces aparece un numero N en el mismo. El numero N a buscar se ingresará por teclado una vez finalizada la carga del vector.Nota: no modificar el vector.

Ejercicio Nº 3:

Modificar el programa del ejercicio 1 para que permita buscar el elemento mayor, el menor y calcule el promedio de los elementos.

Observación: Nótese la diferencia entre el método de búsqueda del elemento mayor de un vector que se encuentra cargado y la búsqueda del elemento mayor a medida que se van ingresando una serie de escalares por teclado.

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 1 / 15

INICIO

Vec1[10]

Vec1[i]

Ingrese el elemento i:

FIN

i = i+1

i < 10SI

NO

i = 0

Page 2: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Ejemplo Nº 2:

Realizar un algoritmo que permita la carga de un vector “Vect3” de N elementos y ordene el mismo de mayor a menor. Razonar acerca de la eficiencia de los cuatro métodos planteados y en que condiciones se deben utilizar.

Nota: el numero N, que es la cantidad de elementos del vector, se define como una constante al inicio del programa.

Método Nº 1: burbuja con bandera

1- #include <iostream>2- using namespace std;3- #define N 10

4- int main()5- {6- int i, bandera, temp;

8- int Vect3[N];

9- for(i=0;i<N;i++)10- {11- cout << "ingrese el elemento " << i << ":";12- cin >> Vect3[i];13- }

14- do15- {16- bandera = 0;

17- for(i=0;i<N-1;i++)18- {19- if(Vect3[i] < Vect3[i+1])20- {21- temp = Vect3[i];22- Vect3[i] = Vect3[i+1];23- Vect3[i+1]=temp;24- bandera = 1;25- }26- }27- }while(bandera!=0);

28- return(0);29- }

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 2 / 15

Page 3: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 3 / 15

INICIO

Vec3[N]

SI

Vect3[i]

Ingrese el elemento i:

i = i+1

i<10SI

NO

i = 0

FIN

bandera≠0SI

NO

bandera=0

Vect3[i]<

Vect3[i+1]

SI

NO

bandera=1

i < N-1

NO

i = 0

temp=Vect3[i]Vect3[i]=Vect3[i+1]

Vect3[i+1]=temp

i = i+1

Page 4: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Método Nº 2: vuelve el contador a cero cada vez que ordena un elemento.

1- #include <iostream>2- using namespace std;3- #define N 10

4- int main()5- {6- int i, temp;

8- int Vect3[N];

9- for(i=0;i<N;i++)10- {11- cout << "ingrese el elemento " << i << ":";12- cin >> Vect3[i];13- }

14- for(i=0;i<N-1;i++)15- {16- if(Vect3[i] < Vect3[i+1])17- {18- temp = Vect3[i];19- Vect3[i] = Vect3[i+1];20- Vect3[i+1]=temp;21- i = -1; // se debe reinicializar en -1 el contador debido al 22- } // incremento automático del bucle for. 23- }

24- return(0);25- }

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 4 / 15

Page 5: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Diagrama de flujo del ejemplo Nº 2, método 2:

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 5 / 15

SI

FIN

Vect3[i]<

Vect3[i+1]

SI

NO

i = -1

i < N-1

NO

temp=Vect3[i]Vect3[i]=Vect3[i+1]

Vect3[i+1]=temp

i = i+1

i = 0

INICIO

Vec3[N]

Vect3[i]

Ingrese el elemento i:

i = i+1

i < 10SI

NO

i = 0

Page 6: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Método Nº 3: Método de la burbuja con dos FOR.

1- #include <iostream>2- using namespace std;3- #define N 10

4- int main()5- {6- int i, j, temp;

8- int Vect3[N];

9- for(i=0;i<N;i++)10- {11- cout << "ingrese el elemento " << i << ":";12- cin >> Vect3[i];13- }

16- for(j=0;j<N;j++){

17- for(i=0;i<N-1;i++)18- {19- if(Vect3[i] < Vect3[i+1])20- {21- temp = Vect3[i];22- Vect3[i] = Vect3[i+1];23- Vect3[i+1]=temp;25- }26- }27- }

28- return(0);29- }

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 6 / 15

Page 7: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Diagrama de flujo del ejemplo Nº 2, método 3:

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 7 / 15

SI

INICIO

Vec3[N]

Vect3[i]

Ingrese el elemento i:

i = i+1

i<10SI

NO

i = 0

FIN

j < NSI

NO

Vect3[i]<

Vect3[i+1]

SI

NO

i<N-1

NO

i = 0

temp=Vect3[i]Vect3[i]=Vect3[i+1]

Vect3[i+1]=temp

i = i+1

j = 0

j = j+1

Page 8: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Método Nº 4: comparación de uno contra todos

1- #include <iostream>2- using namespace std;3- #define N 10

4- int main()5- {6- int i, j, temp;

8- int Vect3[N];

9- for(i=0;i<N;i++)10- {11- cout << "ingrese el elemento " << i << ":";12- cin >> Vect3[i];13- }

14- for(j=0;j<N-1;j++)15- {17- for(i=j+1;i<N;i++)18- {19- if(Vect3[j] < Vect3[i])20- {21- temp = Vect3[i];22- Vect3[i] = Vect3[j];23- Vect3[j]=temp;25- }26- }27- }

28- return(0);29- }

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 8 / 15

Page 9: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Diagrama de flujo del ejemplo Nº 2, método 4:

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 9 / 15

INICIO

Vec3[N]

i = 0

FIN

j < N-1SI

NO

SI

temp=Vect3[i]Vect3[i]=Vect3[j]

Vect3[j]=temp

j = j+1

SI

Vect3[i]

Ingrese el elemento i:

i = i+1

i<10SI

NO

Vect3[j]<

Vect3[i]

NO

i<N

NO

i = j+1

i = i+1

j = 0

Page 10: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Ejemplo Nº 3:

Realizar un algoritmo que permita la carga (por filas) de una matriz, llamada “matriz”, de “filas x columnas” elementos y ordene los elementos de cada fila de menor a mayor.Observación: el ordenamiento de una sola fila de una matriz es muy similar al ordenamiento de un vector. Utilice como base del código alguno de los desarrollados en el ejemplo Nº 2.

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 10 / 15

NO

INICIO

matris [filas][columnas]

F = 0

F < filas

SI

C = 0

SI

matriz [F][C]

Ingrese el elemento (F,C):

C < columnas

C = C+1

NO

F = F+1

1

Page 11: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 11 / 15

NO

F = 0

F < filas

SI

C = 0

SI

F = F+1

1

C < columnas-1

matriz[F][C] < matriz[F][C+1]

C = C+1

temp = matriz[F][C]matriz[F][C] = matriz[F][C+1]matriz[F][C+1] =tempbandera = 1

SI

NONO

Bandera = 0

Bandera != 0

SI

NOFIN

Page 12: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Código fuente del programa del ejemplo Nº 3:

1- #include <iostream>2- using namespace std;3- #define filas 44- #define columnas 4

5- int main()6- {7- int F, C, temp; 8- char bandera;

9- int matris [filas] [columnas]; // declaración del arreglo en base a las etiquetas “filas” y // “columnas”.

10- for(F=0;F<filas;F++)11- {12- for(C=0;C<columnas;C++)13- {14- cout << "ingrese el elemento " << "(" << F << "," << C << ")";15- cin >> matris [F][C];16- }17- }

18- do19- {20- bandera = 0;

21- for(F=0;F<filas;F++)22- {23- for(C=0;C<columnas-1;C++)24- {25- if (matris[F][C] < matris[F][C+1])26- {27- temp = matris[F][C];28- matris[F][C] = matris[F][C+1];29- matris[F][C+1] =temp;30- bandera = 1;31- }32- }33- }

34- } while (bandera != 0);

35- return(0);36- }

Ejercicio Nº 4:

Modificar el programa del ejemplo 3 para que permita visualizar la matriz una vez que ha sido ordenada.

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 12 / 15

Page 13: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Ejercicio Nº 5:Modificar el programa del ejemplo 3 para utilizar alguno de los otros métodos posibles

de ordenamiento.

Ejemplo Nº 4:

Realizar un algoritmo que realice la carga (por columnas) de una matriz, llamada “MAT”, de “M x N” elementos y que permita el ingreso de dos números que definen un intervalo cerrado, una vez ingresados, el programa debe informar al usuario cuantos valores dentro de la matriz están dentro de ese intervalo.

1- #include <iostream>2- using namespace std;3- #define N 54- #define M 5

5- int main()6- {7- int f, c, temp, cantidad=0;

8- int matris [M] [N];

9- for(C=0;C<N;C++)10- {11- for(F=0;F<M;F++)12- {13- cout << "ingrese el elemento " << "(" << F << "," << C << ")";14- cin >> matris [F][C];15- }16- }

17- cout << "ingrese los extremos de un intervalo cerrado : ";18- cin >> a >> b;

19- if (a < b)20- { temp = a;21- a = b;22- b = temp;23- }

24- for(F=0;F<M;F++)25- {26- for(C=0;C<N;C++)27- {28- if ( matris[F][C] > a && matris[F][C] < b )29- cantidad = cantidad + 1;30- }31- }

32- return(0);33- }

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 13 / 15

Page 14: GUÍA PRACTICA Nº 1 DE TURBO C++

NOF < M

SI

C = 0

SI

F = F+1

1

C < N

matris[F][C] > a&&

matris[F][C] < b

C = C+1

cantidad = cantidad +1

SI

NONO

FIN

Ingrese los extremos deun intervalo cerrado

a b

a < bSI

temp = aa = bb = temp

NO

F = 0

TALLER DE INFORMÁTICA

Diagrama de flujo del ejemplo Nº 4:

Observación: se ha omitido la carga del arreglo,que se puede ver en el ejemplo 3.

Ejercicio Nº 6:

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 14 / 15

Page 15: GUÍA PRACTICA Nº 1 DE TURBO C++

TALLER DE INFORMÁTICA

Escribir un programa que posibilite al usuario la carga de una matriz de “M x N” elementos, luego se ingresa un numero e informa cuantos valores mayores al numero ingresado existen en cada fila del arreglo.

Ejercicio Nº 7:

Hacer un programa que permita cargar una matriz de “M x N”, calcule y muestre el mayor y menor elemento de cada columna.

Ejercicio Nº 8:

Cargar una matriz de “M x N” y generar:

1) Un vector con el contenido de la suma de cada fila.2) Copiar todos los valores de una fila de la matriz, indicada por teclado, a un vector.3) Un vector con la cantidad de elementos negativos de cada columna.

Ejercicio Nº 9:

Escribir un programa que encuentre la ubicación del mayor y el menor elemento de una matriz de “M x N”. Mostrar la matriz completa y las ubicaciones encontradas con los valores respectivos.

Ejercicio Nº 10:

Realizar un diagrama de flujo que permita la carga de dos matrices y luego mediante la selección de una opción permita el calculo de la suma o el producto de las mismas y luego muestre la matriz resultado.

Ejemplos compilados con Anjuta Versión 1.2.4a, bajo Ubuntu.10 15 / 15