Práctico 7: arreglos

Usar http://www.pythontutor.com/c.html para ver la ejecución paso a paso de los programas que no usan scanf.

Parte 1: Arreglos

1.1. Declarar, inicializar y modificar arreglos (PythonTutor)

cantidad de participantes 1 o 2 participantes.

En http://www.pythontutor.com/c.html, escribir un programa que hace lo siguiente:

  1. Declarar un arreglo de enteros (int), de nombre a, de tamaño 5 e inicializarlo con los valores 1,2,3,4,5.
  2. Asignar al primer elemento de a el valor 15.
  3. Asignar al último elemento de a el valor 20.
  4. Asignar al elemento ubicado al medio de a el valor 8.
  5. Con una sola llamada a printf y 5 especificadores de conversión, imprimir el valor de cada uno de los elementos del arreglo a, del primero al último.
  6. Con un bucle, y usando una variable de conteo para recorrer las posiciones del arreglo, calcular la suma de los elementos del arreglo. Luego imprimirla.

1.2. Mostrar y modificar arreglos con bucles (JSLinux)

cantidad de participantes 1 o 2 participantes.

Hacer este ejercicio dentro de JSLinux, y con el editor de texto vi.

Editar un programa llamado arreglo.c.

  1. Declarar un arreglo de enteros (int) de tamaño 15 y de nombre a.
  2. Con un bucle, asignar valores a las posiciones del arreglo, elemento por elemento, con los valores siguientes: 10, 20, 30, … .
  3. Después del código que muestra el contenido del arreglo, agregar un bucle que pide al usuario ingresar un valor para sumar a cada posicion del arreglo.
  4. Con un bucle más, imprimir el contenido del arreglo.

Parte 2: Cálculos con arreglos

cantidad de participantes 1 o 2 participantes.

En estos ejercicios, no es necesario imprimir el valor final de la variables o de los arreglos con printf. Basta visualizarlos en la interfaz de PythonTutor.

2.1. Copiar el contenido de un arreglo a otro

Entrar al link siguiente: https://goo.gl/oxWNnG

Contiene un programa que declara dos arreglos, a y b. Inicializa el arreglo b con ceros y el arreglo a con valores aleatorios entre 0 y 9.

Modificar este programa para que se copie el contenido del arreglo a al arreglo b.

2.2. Suma en parallelo

Entrar al link siguiente: https://goo.gl/79CB9A

Contiene un programa que declara dos arreglos, a y b, y los inicializa con valores aleatorios entre 0 y 9. Además declara un tercer arreglo c inicializado con ceros.

Modificar este programa para que cada elemento del arreglo c sea tal que ci = ai + bi.

2.3. Cálculo del producto de los elementos de un arreglo

Entrar al link siguiente: https://goo.gl/ciU5RR

Contiene un programa que declara e inicializa un arreglo con valores aleatorios entre 1 y 5.

Modificar este programa para que calcule el producto de los elementos de ese arreglo en una variable prod.

2.4. Elemento máximo de un arreglo

Entrar al link siguiente: https://goo.gl/ciU5RR

Contiene un programa que declara e inicializa un arreglo con valores aleatorios entre 1 y 5.

Modificar este programa para que guarde el elemento máximo del arreglo en una variable max.

2.5. Copiar el contenido de un arreglo a otro, invirtiendo el orden

Entrar al link siguiente: https://goo.gl/oxWNnG.

Contiene un programa que declara dos arreglos, a y b. Inicializa el arreglo a con valores aleatorios entre 0 y 9 y b con ceros.

Modificar este programa para que se copie el contenido del arreglo a al arreglo b al reves.

Por ejemplo si a contiene [3,6,0,0,2] , b tendrá que tener [2,0,0,6,3].

2.6. Buscar un elemento en un arreglo

Entrar al link siguiente: https://goo.gl/K82pjs

Contiene un programa que declara e inicializa un arreglo a con valores aleatorios entre 1 y 5, y declara una variable x con un valor aleatorio entre 1 y 5.

Modificar este programa de la manera siguiente:

Parte 3: Pruebas de escritorio con bucles for

/* 3.1 */
int i = 0;
int b = 0;
for(i = 0; i < 3; i = i + 1){
  b = b + 2;
}
/* 3.2 */
int i = 0;
for(i = 0; i < 2; i = i + 3){
  i = i - 2;
}
/* 3.3 */
int i = 10;
int b = 4;
for(i = 0; i < b; i = i + 2){
  b = b + 1;
}
/* 3.4 */
int i = 0;
int a = 1;
for(i = 0; i < 10; i = i + a){
   a = a + 1;
}