Está en la página 1de 11

UNIVERSIDAD NACIONAL DE SAN AGUSTIN

FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 1

GUÍA DE LABORATORIO
(formato docente)
INFORMACIÓN BÁSICA
ASIGNATURA: Análisis y Diseño de Algoritmos
TÍTULO DE LA
Introducción
PRÁCTICA:
NÚMERO DE NRO.
1 AÑO LECTIVO: 2023 IV
PRÁCTICA: SEMESTRE:
INDIVIDUAL X
TIPO DE
MÍNIMO DE MÁXIMO DE
PRÁCTICA: GRUPAL
ESTUDIANTES ESTUDIANTES
FECHA INICIO: 15/09/2023 FECHA FIN: 15/09/2023 DURACIÓN: 2 horas
RECURSOS Y EQUIPOS A UTILIZAR:
● Lenguaje de programación C++.
● Guía de Laboratorio.

DOCENTE:

OBJETIVOS/TEMAS Y COMPETENCIAS
OBJETIVOS:
Construir soluciones algorítmicas para los problemas propuestos.

TEMAS:
Introducción

COMPETENCIAS C.a. Aplica de forma transformadora conocimientos de teoría de la computación


A ALCANZAR como herramienta para evaluar, sintetizar y mostrar información como fundamento
de sus ideas y perspectivas para la resolución de problemas.
C.m. Construye responsablemente soluciones siguiendo un proceso adecuado de
análisis y diseño de algoritmos llevando a cabo las pruebas ajustadas a los recursos
disponibles del cliente.
UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 2

CONTENIDO DE LA GUÍA
UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 3

I. MARCO CONCEPTUAL
A continuación se describe la estructura básica de un programa en C++:

La primera línea permite la inclusión de archivos de cabecera que extienden las


funcionalidades del programa. El código fuente se guarda en un archivo con la extensión .cpp
y compilarlo.

Tipos de datos básicos


Los tipos de datos permiten definir variables que almacenan la información necesaria,
asociando dicha información a un dominio de valor y operaciones sobre dicho valor. C++ cuenta
con los siguientes tipos de datos básicos[4]:
Nombre Equivalente en Longitud * Rango *
pseudocódigo
char Caracter 8 bits (1 byte) 0 a 255 (ver tabla ASCII estándar)
bool Lógico 8 bits (1 byte) {true,false} ó 0 a 255
int Entero 32 bits (4 bytes) -2147483648 al 2147483647
float Real 32 bits (4 bytes)
double Real 64 bits (8 bytes)
* Estos rangos y longitudes dependen del compilador que se esté utilizando. Para algunos tipos de
datos se puede ampliar o disminuir la longitud y el rango utilizando short y long.

Nota: El string no es un tipo de dato básico en C++, sin embargo puede ser utilizado
incluyéndolo como archivo de cabecera al principio del código de la siguiente manera:

Declaración de variables
Las variables son porciones de memoria que almacenan un valor y este puede ser
modificado. La declaración de una variable se lleva a cabo mediante la combinación de un
identificador, un tipo de dato y si se quiere un valor inicial. También se puede crear una lista
UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 4

de variables asociadas a un mismo tipo de dato.


Tipo_de_dato nombre_variable;
nombre_variable = valor_inicial;

Ejemplo:

Operadores Básicos en C++


Operación Pseudocódigo C++

Suma + +
Resta - -
Multiplicación * *
División / /
Div DIV /
Mod MOD %
Mayor que > >
Mayor o igual que >= >=
Menor que < <
Menor o igual que <= <=
Igual que == ==
Diferente que ≠ !=
O Lógico O ||
Y Lógico Y &&
NO Lógico NO !
UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 5

Prioridad de los Operadores en C++


Operación C++
Paréntesis ()
NO Lógico !
Menos (Unario) -
Multiplicación, División, Div, Mod * / / %
Suma, Resta + -
Mayor que, Menor que, Mayor o igual > < >= <=
que, Menor o igual que
Igual que, Diferente que == !=
Y lógico &&
O Lógico ||
Asignación =

Entrada/Salida
Para leer y escribir en C++ se debe incluir la cabecera iostream de la siguiente manera:

Para mostrar un mensaje:

Para mostrar el valor de una variable:

Para mostrar un mensaje junto al valor de una variable:

Para leer un valor y almacenarlo en una variable:


UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 6

Vea el siguiente ejemplo, luego compilarlo y ejecutarlo:


UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 7

Arreglos
Un arreglo es una estructura de datos conformada por una sucesión de celdas, que permite
almacenar en la memoria principal del computador un conjunto finito de elementos que
tienen el mismo tipo de dato.
Para hacer referencia a cualquiera de las celdas del arreglo es necesario el nombre del
arreglo y el valor de uno de los índices asignados al arreglo, esto permite tener acceso
aleatorio.
Declaración
Un arreglo se declara de la siguiente manera:
<tipo de dato> <identificador>[tamaño];

En C++ sólo se indica el tamaño del arreglo, ya que el límite inferior siempre es cero (0) y
el límite superior es el tamaño menos uno (tamaño - 1).

Operaciones
C++ permite realizar la operación constructora y la selectora. En el siguiente ejemplo se
puede ver cómo se aplican estas operaciones:

//Se declara un arreglo de enteros


// y se aplica la operación constructora
int a[4] = { 10, 15, 20, 25 };
// Se cambia el valor de la segunda posición
//utilizando la operación selectora
a[1] = 14;
//Se muestran algunos valores utilizando
//la operación selectora
cout << a[1] << endl;
cout << a[3] << endl;

Recorrido secuencial
Se utiliza cuando se necesita hacer una operación sobre todos los elementos del arreglo,
para ello se utiliza una estructura de control iterativa (for). Una de las operaciones que se
puede hacer al recorrer secuencialmente es leer los valores que se quieren almacenar en
el arreglo. Esto se puede hacer de la siguiente manera:
//Se declara el arreglo

int a[10];
//Se recorre para leer los valores
UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 8

for(int i=0; i < 10; i++){


cout << “Introduzca el valor ”<<i<<“:”; cin >> a[i];
}

1. EJERCICIOS RESUELTOS
Crear un programa que defina un array de números y calcule la suma de sus elementos.
ENTRADA: 1,2,3,4,5,6,7,8,9,10
SALIDA: 55
#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
int main()
{
int numeros[] = {1,2,3,4,5,6,7,8,9,10};
int suma = 0;
for (int i=0; i<=9; i++)
{
suma += numeros[i];
}
cout<<"La suma es: "<<suma;
printf("\n");
getch();
return 0;
}

2. EJERCICIOS PROPUESTOS

1. Crear un programa que permita solicitar al usuario la cantidad de elementos a ingresar a un


array, luego el usuario debe ingresarlos por teclado y finalmente debe calcular la multiplicación de
los mismos.

ENTRADA: 1,4,5
SALIDA: 20
UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 9

2. Desarrollar un programa que tenga como entrada un array de números y muestre en la salida
los números con la respectiva posición que ocupa en el array.

ENTRADA: 1,7,8,9,5
SALIDA: 0 -> 1
1 -> 2
2 -> 8
3 -> 9
4 -> 5

3. Crear un programa que defina un array de números y muestre en la salida el array en orden
inverso, es decir del último al primer elemento.

ENTRADA: 1,7,4
SALIDA: 4,7,1

4. Desarrollar un programa que lea la entrada estándar un array de enteros y determine el


menor elemento del array.

ENTRADA: 1,-1,4,5,-6,7,8,10
SALIDA: -6

5. Crear un programa que defina un array de números y calcule si existe algún número en el array
cuyo valor equivale a la suma del resto de números del array.

ENTRADA: 1,3,4,8
SALIDA: 8 equivale a la suma de los demás números.

6. Desarrollar un programa que defina dos arrays de caracteres y después almacene el


contenido de ambos arrays en un nuevo array, situando en primer lugar los elementos del primer
array seguido por los elementos del segundo array. Mostrar el contenido del nuevo array.

ENTRADA: A1=[a,b,c,d,e] A2=[v,w,x,y,z]

SALIDA: A3=[a,b,c,d,e,v,w,x,y,z]

7. Crear un programa que lea 10 elementos en un array, los copie a otro array multiplicado por
un número que se ingrese por teclado. Defina dos arrays de caracteres y después almacena el
contenido de ambos arrays en un nuevo array, situando en primer lugar los elementos del primer
array seguido por los elementos del segundo array. Mostrar el contenido del nuevo array.

ENTRADA: A1=[1,2,3,4,5,6,7,8,9,10] multiplica:3


UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 10

SALIDA: A2=[3,6,9,12,15,18,21,24,27,30]

8. Dado un array de enteros, verifique si contiene un subarray que tiene suma cero.

ENTRADA: A1=[4, 2, -3, -1, 0, 4]

SALIDA: Subarray existe.

9. Dada un array de enteros, mueva todos los ceros presentes al final del array. La solución
debe mantener el orden relativo de los elementos en el array y no debe usar un espacio constante.

ENTRADA: A1=[ 6, 0, 8, 2, 3, 0, 4, 0, 1]

SALIDA: A2=[ 6, 8, 2, 3, 4, 1, 0, 0, 0]

10. Desarrollar un programa que permita ingresar varios números. Almacene los números pares en
un array llamado numPar[] y los números impares en un array llamado numImpar[]. Finalmente
deberá mostrar los números pares ingresados y luego los números impares.

ENTRADA: A1=[3,6,9,1,8,11,14]

SALIDA: numPar = [6,8,14]

numImpar=[3,9,1,11]

3. CUESTIONARIO
1. ¿Cómo se declaran los arrays en C++?
2. Para el siguiente caso: Se desea calcular el total a pagar, en una venta normal en una papelería,
proporcionando el precio unitario de un producto, así como el número total de productos a comprar,
además de aplicar el 18% de IGV. ¿Qué entradas se requiere?¿Cuál es la salida deseada?¿Qué métodos
produce la salida deseada?

3. REFERENCIAS Y BIBLIOGRAFÍA RECOMENDADAS:


● C++ Language Tutorial: Arrays. Juan Soulie.
http://www.cplusplus.com/doc/tutorial/arrays/

TÉCNICAS E INSTRUMENTOS DE EVALUACIÓN


UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMA

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación


Aprobación: 2022/03/01 Código: GUIA-PRLD-001 Página: 11

TÉCNICAS: INSTRUMENTOS:
Ejercicios resueltos Lista de ejercicios de programación
Ejercicios propuestos
Pregunta formulada
CRITERIOS DE EVALUACIÓN Y LOGROS ALCANZADOS
Se evaluará de acuerdo a niveles de logro (inicio, proceso, logro esperado, logro destacado) que alcanzará
el estudiante al revisar su práctica, ya que esto servirá para desarrollar la retroalimentación.

También podría gustarte