Curso Gratis de Programación #23 Registros

Bienvenidos a este nuevo capítulo de este Curso Gratis de Programación #23 Registros. Teoría y ejercicios.

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Un registro es una estructura compuesta por diversos tipos de datos que se agrupan en una misma variable. La utilización de un registro es apropiada cuando se desea manejar datos relacionados sin importar sus tipos, bajo una misma unidad. Si se desea crear un programa que permita calcular el sueldo que pagar a los empleados de una institución, se debe conocer el nombre y apellido junto con el monto para pagar de cada empleado.  En el caso de un alumno, se pueden representar sus datos con tipos simples o primitivos bajo una misma unidad, y se tendrían tantas variables simples como datos se necesiten representar del alumno.

Declaración de un registro En pseudocódigo:

Algoritmo declaracion_registro
tipo
	registro: nombre _ registro
	inicio
		«tipo de dato>: «nombre de variable, nombre de variable, etc.>
		«tipo de dato>: «nombre de variable, nombre de variable, etc.>
	fin -registro
var
	nombre_registro: nombre _ variable
Inicio
	<sentencia ejecutable 1>
	< sentencia ejecutable 2>
	< sentencia ejecutable n>
fin 

La composición de un registro la define el programador, por lo tanto, al igual que los arreglos, su estructura debe definirse en la sección tipo del algoritmo y también debe indicarse un nombre a la estructura o tipo de dato definida. Dentro dela sección delimitada por las palabras reservadas inicio y fin, se declaran los elementos que componen el registro, que pueden ser de tipo primitivos (entero, real, lógico, cadena, carácter) o compuestos (arrayo incluso otro registro).

Los elementos que componen un registro se denominan campos. En la sección var, se declaran las variables que se utilizarán en el algoritmo, por lo tanto, si se utilizará el tipo de dato del registro definido, se deben indicar las variables que utilizarán dicho tipo de dato.

Declaración de un registro con tres campos de tipo entero y uno de tipo real:

Algoritmo declaracion_registro_1
tipo
	registro: reg1
		inicio
			entero: dato1, dato2, dato3
			real: resultado
		fin-registro
var
	Reg1 : r1
Inicio
	.
	.
	.
fin 

Declaración de un registro con campos de tipo entero, real y cadena:

Algoritmo declaracion_registro 2
tipo
	registro: reg2
		Inicio
			entero: dato1
			real: resultado
			cadena: texto1
		fin-registro
var
	reg2: r2
inicio
	.
	.
	.
fin 

Acceso a los campos de un registro

Para acceder a los elementos o campos de un registro, se utiliza el nombre o identificador de la variable de tipo registro y el operador punto (.), seguido del nombre del campo al que queremos acceder.  En el siguiente fragmento de código, se desea ingresados  valores por teclado para guardarlos en los campos dato1y dato2deun registro. Luego, la suma de los valores de ambos campos es asignada al campo resultado.  se muestra por pantalla el valor del campo resultado.

Algoritmo acceso _ registro
tipo
	registro: reg
		Inicio
			entero: dato1, dato2, resultado
		fin-registro
var
	reg: r
Inicio
	escribir "Ingrese un número entero ")
	leer(r.dato1)
	escribir("lngrese un número entero ")
	leer(r. dato2)
	r.resultado <-r.dato1 + r.dato2
	escribir("La suma de los valores ingresados es: ", r.resultado)
fin 

Arreglo de registros

Si se desea manipular una lista de elementos cuyo tipo de dato es de un registro definido, entonces se puede utilizar un arreglo de registros. En este caso, cada posición del arreglo corresponde a un registro.

Algoritmo arreglo _ de _ registros
tipo
	registro: reg _ alumno
		inicio
			cadena: nombre, apellido
			entero: notal, nota2, nota3
			real: promedio
		fin -registro
	array[1...10] de reg_alumno: vector
var
	vector: listado alumnos
Inicio
	.
	.
	.
fin

Si se deseara acceder al campo promedio del tercer registro del arreglo listado_alumnos, se utilizaría la siguiente sintaxis:
  listado_alumnos[3].promedio 

Si se deseara acceder al campo promedio del tercer registro del arreglo listado_alumnos, se utilizaría la siguiente sintaxis:

  listado_alumnos[3].promedio

Ejercicio 1

Algoritmo que permita cargar números en una matriz de 3 filas y 4columnas.

La suma de los valores de cada fila se debe almacenar en un arreglo unidimensional denominado fila y la suma de los valores de cada columna se debe almacenar en un arreglo unidimensional denominado columna. Debe mostrar el contenido de los arreglos unidimensionales.

algoritmo matriz _ sumadilas_columnas
tipo
	Array[1..3][1..4] de real: matriz
	array[1..3] de real: vector_3
	array[1..4] de real: vector_4
Var
	entero: i, j
	real: sumaFilas, sumaColumnas
	matriz: datos
	vector _3: filas
	vector 4: columnas
inicio
	mostrar("Carga de matriz... ")
	Mostar("")
	para i<- 1 hasta 3 hacer
		Para j <- 1 hasta 4 hacer
			Mostrar(ingrese un número para la posición [",i,",",j,"])
			Leer(datos[i,j])
		fin-para
	fin-para
	// Suma de los valores por cada fila
	para i <— 1 hasta 3 hacer
		sumaFilas <-0
	Para j <-1 hasta 4 hacer
		sumaFilas<- sumaFilas + datos[i,j]
	fin-para
	filas[i] <-sumaFilas
fin-para

// Suma de los valores por cada columna
Para j <— 1 hasta 4 hacer
	sumaColumnas <-0
	para i <- 1 hasta 3 hacer
		sumaColumnas <— sumaColumnas + datos[i,j]
	fin- para
	columnas[j] <- sumaColumnas
fin-para

// Mostrar arreglo con la suma de cada fila

	mostrar("Contenido arreglo con suma de cada fila")
	para i <- 1 hasta 3 hacer
		mostrar Sin Saltar ("", filas[i])
	fin-para

	mostrar("")

	// Mostrar arreglo con la suma de cada columna
	mostrar("Contenido arreglo con suma de cada columna ")
	para j <— 1 hasta 4 hacer
		mostrar Sin Saltar ("", columnas[i])
	fin-para
fin

Ejercicio 2

algoritmo que permita cargar una matriz de 4 filas y 4 columnas de números enteros. El algoritmo debe guardar los elementos de la diagonal principal en un arreglo unidimensional y mostrar su contenido.

algoritmo matriz diagonal_principal
Tipo
	array[1…4][1…4] de real: matriz
	array[1...4] de real: vector 4
Var
	entero: i, j
	matriz: datos
	vector_ 4: diagonal
incio
	mostrar("Carga de matriz... ")
	Mostrar("")
	para Í <— 1 hasta 4 hacer
		Para j <- 1 hasta 4 hacer
			Mostrar("ingrese un número para la posición [",i, ", ",j, "]")
			Leer(datos[i,j])
		fin-para
		Mostrar("")
	fin-para

	// Guardando elementos de la diagonal principal en otro arreglo unidimensional
	para Í <— 1 hasta 4 hacer
		diagonal[i] <-[i,i]
	fin-para

	mostrar("Contenido arreglo con elementos de la diagonal principal")
	para Í <— 1 hasta 4 hacer
		mostrar Sin Saltar diagonal[i])
	fin-para
fin

Ejercicio 3

algoritmo que permita cargar N valores de temperaturas en un arreglo. El algoritmo debe guardar en otro arreglo las temperaturas que superen el promedio. Mostrar el contenido de ambos arreglos.

algoritmo arreglo _ temperaturas _ copiar
tipo
	array(1...50j de real: arreglo
Var
	entero: i, indice_destino, N
	real : suma, promedio
	arreglo: origen, destino
Inicio
	Repetir
		mostrar("lngrese la cantidad de temperaturas que va cargar (menor a 50)
		leer(N)
	hasta-que N > 0 y N < 50

	Mostrar("Ingrese los valores de ", N, " temperaturas")
	para i <- 1 hasta N hacer
		Leer(origen[i])
	fin-para

	suma <— O
	para Í <— 1 hasta N hacer
		suma <— suma + origen[i]
	fin-para
	promedio <— suma/N
	mostrar("")
	mostrar("El promedio de las temperaturas ingresadas es ", promedio)

	mostrar("")
	mostrar("Copiando temperaturas que superan el promedio en nuevo arreglo destino... ")
	índice destino <- 0
	para Í <— 1  hasta N hacer
		si (origen[i] > promedio) entonces
			Indice_destino <—indice destino + 1
			destino[indice_destino] <- origen[i]
		fin-si
	fin-para

	mostrar("")
	mostrar("Mostrando arreglo con temperaturas de origen... ")
	para Í <— 1 hasta N hacer
		mostrar(origen[i])
	fin-para

	mostrar("")
	mostrar("Mostrando arreglo con temperaturas que superan el promedio... ")
	para Í <— 1 hasta indice_destino hacer
		mostrar(destino[i])
	fin-para
fin 

Ejercicio 4

algoritmo que permita cargar N valores de nombres en un arreglo. El algoritmo debe permitir al usuario ingresar un nombre para buscarlo en el listado.

algoritmo arreglo _ nombres
tipo
	Array[1...50] de real: arreglo
Var
	entero: i, N
	Cadena: buscarNombre
	Logico: bandera
	arreglo: nombre
Inicio
	Repetir
		mostrar("lngrese la cantidad de temperaturas que va cargar (menor a 50)
		leer(N)
	hasta-que N > 0 y N < 50
	mostrar("")
	mostrar("ingrese ", N, " nombres para cargar el  arreglo... ")
	para Í <— 1  hasta N hacer
		leer(nombres[i])
	fin-para

	Repetir
		mostrar("")
		mostrar("ingrese  el nombre que desea buscar. Si desea finalizar ingrese salir")
		leer(nombresBuscar)
		nombresBuscar <- Minusculas(nombresBuscar)

		Bandera <- falso
		Si nombreBuscar != "salir" entonces
			para Í <— 1  hasta N hacer
				si nombres[i] == nombreBuscar entonces
					bandera <— verdadero
				Fin-si
			fin-para

			si bandera entonces
				mostrar("El nombre ", nombreBuscar, " se encuentra en el listado")
			Si-no
				mostrar("El nombre ", nombreBuscar, " no se encuentra en el listado")
			Fin-si
		Si-no
			mostrar(")
			mostrar("Gracias por utilizar el programa!)

	hasta-que nombreBuscar = "salir"
fin

Registros (struct) C++

Definición y acceso a los datos Un registro es una agrupación de datos, los cuales no necesariamente son del mismo tipo. Se definen con la palabra “struct”. Para acceder a cada uno de los datos que forman el registro, tanto si queremos leer su valor como si queremos cambiarlo, se debe indicar el nombre de la variable y el del dato(o campo) separados por un punto:

Como es habitual en C++, para declarar la variable hemos indicado primero el tipo de datos (struct { …} ) y después el nombre que tendrá esa variable (persona).También podemos declarar primero cómo van a ser nuestros registros, y más adelante definir variables de ese tipo:

Un struct que almacene datos de una canción en formato MP3: Artista, Título, Duración (en segundos), Tamaño del fichero (en KB). Un programa debe pedir los datos de una canción al usuario, almacenarlos en dicho struct y después mostrarlos en pantalla.

Arrays de registros Hemos guardado varios datos de una persona.

Se pueden almacenar los devarias personas si combinamos el uso de los “struct” con las tablas (arrays) que vimos anteriormente. La sintaxis no es exactamente la misma, y tendremos que añadir la palabra “new” en el momento de reservar espacio. Por ejemplo, si queremos guardar los datos de 100 alumnos podríamos hacer:

La inicial del primer alumno sería “alumnos[0].inicial”, y la edad del último sería “alumnos[99].edad”.  Ampliar el programa del ejercicio 7.1.1, para que almacene datos de hasta100 canciones. Deberá tener un menú que permita las opciones: añadir una nueva canción, mostrar el título de todas las canciones, buscar la canción que contenga un cierto texto (en el artista o en el título). Nota: si te parece demasiado complicado, en el apartado 7.4 tienes un ejemplo parecido, desarrollado de principio a fin.(7.2.2)Un programa que permita guardar datos de “imágenes” (ficheros de ordenador que contengan fotografías o cualquier otro tipo de información gráfica). De cada imagen se debe guardar: nombre (texto), ancho en píxeles (por ejemplo2000), alto en píxeles (por ejemplo, 3000), tamaño en Kb (por ejemplo 145,6). El programa debe ser capaz de almacenar hasta 700 imágenes (deberá avisar cuando su capacidad esté llena).  Debe permitir las opciones: añadir una ficha nueva, ver todas las fichas (número y nombre de cada imagen), buscar la ficha que tenga un cierto nombre.

Creación – Estructuras de datos: registros

Concepto de registro.

  • Las estructuras de datos se clasifican en estructuras simples y compuestas, según cuantos elementos agrupen.
  • Las estructuras de datos, también se clasifican en estructuras de datos estáticas y dinámicas, según cuando se realice la reserva de memoria ram. 
  • Dentro de las estructuras de datos simples están los tipos entero, real, cadena, caráter y lógico. Dentro de las estructuras de datos compuestas están los arreglos y los registros. 
  • Las estructuras de datos estáticas, son aquellas en las que la reserva de memoria se realiza en tiempo de compilación, mientras que las estructuras de datos dinámicas, son aquellas en las que la reserva de memoria se realiza en tiempo de ejecución. 
  • El registro, es un tipo de dato compuesto, es una colección de elementos que pueden ser de distinto tipo. Todos los elementos del conjunto se referencian con una misma variable de ese tipo.

Este tipo de dato es apropiado cuando se quiere por ejemplo dispone de un programa que permita calcular cuánto hay que pagarle a una serie de empleados de una institución. Para poder confeccionar el cheque, debe conocerse el nombre y apellido junto con el monto a pagar.

El monto a pagar se determina según su categoría, número de horas trabajadas, monto por hora, descuentos especiales (adelanto de dinero), premios por asistencia, cargas sociales (esposa, hijos, escolaridad, etc) Toda esta información junta (registro) caracteriza a una persona. Entonces como esta colección de datos son de distinto tipo, no puedo utilizar un arreglo para alcenarlos. Para estos y otros casos existe el tipo de dato registro.

Otras situaciones…

Otras situaciones son, por ejemplo, representar los datos de un alumno, los datos de un docente, los datos de un cliente del banco, los datos de un rectángulo, los datos de una mesa (forma, material, color). Entonces cuando debo representa una colección de datos que pueden ser de distintos tipos, puede utilizar un registro para representarla.

Ahora bien, si necesito representar los datos de un alumno, también lo puedo hacer con tipos simples o primitivos, en este caso tendría tantas variables simples como datos quiera representar del alumno. La ventaja que tiene usar un registro en lugar de muchas variables simples, es que mediante un único identificador puedo acceder a la colección completa de datos del alumno.

En lugar de tener varias variables, tendría una sola y mediante esa única variable accedería a la información del alumno. Es más sencillo trabajar y usar los registros cuando la situación lo hace necesario.

Cuando se copia el contenido de un registro a otro, se copia miembro a miembro En memoria ram, todos los miembros del registro ocupan posiciones consecutivas.

Creación de variables de tipo registro.

En pseudocódigo el registro se declara de la siguiente forma:

Algoritmo MMMM tipo
	registro: reg inicio
		…… : …..
var

…… : …..
…… : ….. fin_registro

	reg: re
	………………..
……………….

Los registros se declaran en la misma zona que los arreglos en decir en la sección tipo.

En el ejemplo anterior se declara un tipo de dato llamado reg, dentro de inicio y fin se declaran los miembros del registro, pueden declararse miembros primitivos (real, entero, lógico, cadena, carácter) o compuestos (array o incluso otro registro).

En la sección var se declara el tipo con el identificador de la variable con la cual se va a hacer referencia al registro, en este caso ese identificador es re.

A continuación, se van a presentar algunos casos para que puede apreciarse la forma de utilizar estos tipos de datos definidos por el usuario.

Ejercicios de Aplicación 

Acceso a los campos. Operaciones de asignación, entrada/salida.

Para acceder a cada uno de los miembros de un registro se utiliza el nombre o identificador de la variable de tipo registro el operador punto (.) seguido del nombre de la variable del miembro al que queremos acceder ya sea para guardar información en el o para leer su contenido.

Los miembros de un registro no pueden accederse por medio de la variable de ese miembro, siempre se accede a los miembros a tras del identificador de la variable de tipo registro.

Por ejemplo en el siguiente trozo de código se quiere introducir un valor por teclado para guardarlo en el miembro real, variable resul:

Algoritmo YYY const:
tam= 5 tipo
array [ 1..5, 1..5] de carácter: vector registro: reg
inicio
entero: dato1,dato2 real: resul
carácter: dato2

var

vector: ve fin_registro

reg: re
entero: i, j, resultado

inicio
escribir ( „ ingresar un número real‟) leer ( re.resul)
………… fin

Notar la sintaxis para acceder a los miembros de un registro. leer ( re.resul)

A continuación se muestra como se realiza una asignación, para el trozo de código anterior, se desea acumular en la variable resultado, el contenido de los miembros entero del registro:

……………

…………..

leer( re.dato1, re.dato2) resultado ß re.dato1 + re.dato2

Para mostrar por pantalla el contenido de un miembro de un registro, se utiliza la variable registro punto ( .) seguido del nombre de la variable del miembro que se desea mostrar por pantalla. Para el código anterior, se desea mostrar por pantalla el contenido del miembro dato1, la sintaxis es:

……….

mostrar ( re.dato1)

…………

Arreglo de registros.

Es bastante común tener que utilizar arreglos de registros, es decir cada posición del arreglo es un registro. A continuación se presentarán algunos ejemplos:

Declaración de un arreglo unidimensional de 10 elementos de tipo registro. El registro contiene un miembro real y otro entero:

algoritmo TTT tipo
registro: regis inicio
entero: inf1 real: inf2

fin_registro
array [1..10] de regis: vector

var
vector: re
…………
………..

Declaración de un arreglo de registro, el registro contiene un miembro que es un dato lógico, y dos enteros:

Algoritmo OOO tipo
registro: reg inicio
entero: dato1, dato2 lógico: inf1 fin_registro
array [1..10] de reg: vector

var
vector: re
…………
………..

Declaración de un arreglo unidimensional de 20 elementos de tipo registro. Cada registro contine tres datos de tipo lógico:

Algoritmo TTT tipo
registro: regis inicio
lógico: inf1, inf2, inf3

fin_registro
array [1..20] de regis: vector

var
vector: vec
…………
………..

Declaración de un arreglo de registros de 10 elementos. El registro contiene un entero, real, carácter, y un miembro que es una matriz de 5 x5 de caracteres:

Algoritmo OOO tipo
array [1..5, 1..5] de caracter: vector

registro: reg inicio
entero: dato1 real: resul carácter: dato2 vector: ve
fin_registro
array [1..10] de reg: arr

var
arr: vec

…………
………..

Ejercicios de aplicación.

A continuación se mostrarán ejemplos tratando de abarcar la mayor diversidad de casos posibles. 

Ejemplo 1:

Se desea representar información de 3 trabajadores. Cada trabajador se representa con un registro. La información que se guarda en el registro es: nombre, apellido, edad, número de horas trabajadas, monto por hora trabajada. Cargar desde el teclado los registros, y mostrar por pantalla la remuneración promedio que paga la empresa.

algoritmo Calcula_remuneracion tipo
registro: persona inicio
cadena: nombre, apellido entero: edad, num_hora real: monto_hora

fin_registro

var
real: total
persona: per1, per2, per3

inicio
total ⭠ 0
ingresar ( „nombre, apellido, edad, monto por hora y número de horas trabajadas de un trabajador‟)
leer ( per1.nombre, per1.apellido, per1.edad, per1.monto_hora, per1.num_hora )

ingresar ( „nombre, apellido, edad, monto por hora y número de horas trabajadas de un trabajador‟)
leer ( per2.nombre, per2.apellido, per2.edad, per2.monto_hora, per2.num_hora )

ingresar ( „nombre, apellido, edad, monto por hora y número de horas trabajadas de un trabajador‟)
leer ( per3.nombre, per3.apellido, per3.edad, per3.monto_hora, per3.num_hora ) total ⭠ total + per1.monto_hora * per1.num_hora
total ⭠ total + per2.monto_hora * per2.num_hora
total ⭠ total + per3.monto_hora * per3.num_hora mostrar ( „la empresa en promedio paga:‟, total/3)
fin

Ejercicio 2:

Se desea representar información de 3 trabajadores. Cada trabajador se representa con un registro. La información que se guarda en el registro es: nombre, apellido, edad, número de horas trabajadas, monto por hora trabajada. Cargar desde el teclado los registros, y mostrar por pantalla la remuneración más alta, junto con su identificación.

algoritmo Calcula_Mayor_remuneracion tipo
registro: persona inicio
cadena: nombre, apellido entero: edad, num_hora real: monto_hora

fin_registro

var
real: total
persona: per1, per2, per3 cadena: nom,ape
inicio
   total ⭠ 0
   ingresar ( „nombre, apellido, edad, monto por hora y número de horas trabajadas de un trabajador‟)
   leer ( per1.nombre, per1.apellido, per1.edad, per1.monto_hora, per1.num_hora )

   ingresar ( „nombre, apellido, edad, monto por hora y número de horas trabajadas de un trabajador‟)
   leer ( per2.nombre, per2.apellido, per2.edad, per2.monto_hora, per2.num_hora )

   ingresar ( „nombre, apellido, edad, monto por hora y número de horas trabajadas de un trabajador‟)
   leer ( per3.nombre, per3.apellido, per3.edad, per3.monto_hora, per3.num_hora )

   total ⭠ total + per1.monto_hora * per1.num_hora nom ⭠ per1.nombre

   ape ⭠ per1.apellido
   si total < (per2.monto_hora * per2.num_hora) entonces
      total ⭠ per2.monto_hora * per2.num_hora
      nom ⭠ per2.nombre ape ⭠ per2.apellido
   fin-si
   si total < (per3.monto_hora * per3.num_hora) entonces
      total ⭠ per3.monto_hora * per3.num_hora
      nom ⭠ per3.nombre ape ⭠ per3.apellido
   fin-si
   mostrar ( „la mayor remuneración es: „, total, „el nombre y apellido es:‟, nom,ape)
fin

Ejercicio 3:

Se desea representar información de 3 trabajadores. Cada trabajador se representa con un registro. La información que se guarda en el registro es: nombre, apellido, edad, número de horas trabajadas, monto por hora trabajada, sexo codificado (mujer=1, varón=0). Cargar desde el teclado los registros, y mostrar por pantalla la remuneración de las mujeres, junto con su identificación.

algoritmo Calcula_Mayor_remuneracion tipo
registro: persona inicio
cadena: nombre, apellido entero: edad, num_hora lógico: sexo
real: monto_hora fin_registro
var
persona: per1, per2, per3
inicio
   ingresar ( „nombre, apellido, edad, monto por hora y número de horas trabajadas, sexo ( mujer=1, varón=0), de un trabajador‟)
   leer ( per1.nombre, per1.apellido, per1.edad, per1.monto_hora, per1.num_hora, per1.sexo)

   ingresar ( „nombre, apellido, edad, monto por hora y número de horas trabajadas, sexo codificado (mujer=1, varón=0), de un trabajador‟)
   leer ( per2.nombre, per2.apellido, per2.edad, per2.monto_hora, per2.num_hora, per2.sexo)

   ingresar ( „nombre, apellido, edad, monto por hora y número de horas trabajadas, sexo codificado (mujer=1, varón=0), de un trabajador‟)
   leer ( per3.nombre, per3.apellido, per3.edad, per3.monto_hora, per3.num_hora, per3.sexo)

   si per1.sexo = 1 entonces
      mostrar ( „la empleada:‟ per1.nombre, per1.apellido, „ gana:‟, per1.monto_hora * per1.num_hora)
   fin-si

   si per2.sexo = 1 entonces
      mostrar ( „la empleada:‟ per2.nombre, per2.apellido, „ gana:‟, per2.monto_hora * per2.num_hora)
   fin-si

   si per3.sexo = 1 entonces
      mostrar ( „la empleada:‟ per3.nombre, per3.apellido, „ gana:‟, per3.monto_hora * per3.num_hora)
   fin-si
fin

Ejemplo 4:

Se desea representar información de 5 trabajadores, mediante un arreglo de registros. Cada trabajador se representa con un registro. La información que se guarda en el registro es: nombre, apellido, edad, número de horas trabajadas, monto por hora trabajada, sexo codificado (mujer=1, varón=0). Cargar desde el teclado los registros, y mostrar por pantalla la remuneración de las mujeres, junto con su identificación.

algoritmo Calcula_Mayor_remuneracion tipo
registro: persona inicio
cadena: nombre, apellido entero: edad, num_hora lógico: sexo
real: monto_hora
var
fin_registro
array [1..5] de persona: vector

vector:vec entero: i
inicio
   desde i ⭠ 1 hasta 5 hacer
      ingresar  („nombre,  apellido,  edad, monto por hora y número de horas trabajadas, sexo ( mujer=1, varón=0) del trabajador n:‟, i)
      leer ( vec[ i].nombre, vec[ i].apellido, vec[ i].edad, vec[ i].monto_hora, vect[ i].num_hora, vec[ i].sexo )
   fin-desde

   desde i ⭠ 1 hasta 5 hacer
      si vec[ i].sexo = 1 entonces
         mostrar(„la empleada:‟ vec[ i].nombre, vec[ i].apellido, „gana:‟, vec[ i].monto_hora * vec[ i].num_hora)
      fin-si
   fin-desde
fin 

Ejemplo 5:

Se desea representar información de 10 trabajadores. Cada trabajador se representa con un registro. La información que se guarda en el registro es: nombre, apellido, edad, número de horas trabajadas, monto por hora trabajada. Cargar desde el teclado los registros, y mostrar por pantalla la remuneración más alta, junto con su identificación.

algoritmo Calcula_Mayor_remuneracion const
tam = 10 tipo
registro: persona inicio
cadena: nombre, apellido entero: edad, num_horas real: monto_hora
fin_registro
array [1..10] de persona: vector
var
entero: i vector: ve real: total
cadena: nom, ape
inicio
   total ⭠ 0
   desde i ⭠ 1 hasta tam hacer
      ingresar ( „nombre, apellido, edad, monto por hora y número de horas trabajadas del trabajador n:‟, i)
      leer ( ve[ i].nombre, ve[ i].apellido, ve[ i].edad, ve[ i].monto_hora, ve[ i].num_hora)
   fin_desde
      total ⭠ ve[ 1].monto_hora * ve[1 ].num_hora nom ⭠ ve[1 ].nombre
      ape ⭠ ve[1 ].apellido
   desde i ⭠ 2 hasta tam hacer
      si total < (ve[ i].monto_hora * ve[ i].num_hora) entonces
           total ⭠ ve[i ].monto_hora * ve[i ].num_hora
         nom ⭠ ve[i ].nombre ape ⭠ ve[i ].apellido
      fin-si
   fin_desde
   mostrar ( „la mayor remuneración es: „, total, „el nombre y apellido es:‟, nom,ape)
fin

Ejemplo 6:

Se desea representar información de 10 trabajadores. Cada trabajador se representa con un registro. La información que se guarda en el registro es: nombre, apellido, remuneración mensual. Cargar desde el teclado los registros mediante un procedimiento. Mediante una función determinar el promedio de remuneración que paga la empresa, y mostrar por pantalla los nombres y apellidos de los trabajadores que perciben por arriba de la remuneración media.

algoritmo Calcula_Mayor_remuneracion const
tam = 10 tipo
registro: persona inicio
cadena: nombre, apellido real: remun

fin_registro
array [1..10] de persona: vector

var
entero: i vector: ve
real: rem_dedia
inicio
   rem_media ⭠ 0 carga_registro ( ve)
   rem_media ⭠ calcula_remun_media ( ve)

   mostrar („los empleados que cobran remuneraciones mayores a la media son:‟)
   desde i ⭠ 1 hasta tam hacer
      si rem_media < (ve[ i].remun) entonces
         mostrar ( ve[ i].nombre, ve[ i].apellido, ve[ i].remun
      fin-si
   fin_desde
fin

procedimiento carga_registro ( S persona: ve) var
entero: i
inicio
   desde i ⭠ 1 hasta 10 hacer
      ingresar( „ nombre, apellido y remuneración de la persona n: „, i) leer (ve[ i].nombre, ve[ i].apellido, ve[ i]remun)
     fin_desde
fin_procedimiento

real función calcula_remun_media ( E persona: ve) var
entero: i real: media
inicio
   media ⭠ 0
   desde i ⭠ 1 hasta 10 hacer
      media ⭠ media + ve[ i].remun
   fin_desde
   media ⭠ media / 10 devolver media
fin_funcion

No te detengas, sigue avanzando

Aquí tienes un propósito para este 2024 que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera!

Python Practicando. Desde 0 hasta Desarrollador en Python

Aprende Python, donde iniciamos desde 0, sin conocimientos previos hasta desarrollar aplicaciones con mucha practica!

Calificación: 4,6 de 5 (20.833 calificaciones) 249.493 estudiantes Creado por Alvaro Chirou • 1.800.000+ Enrollments WorldwideWalter Coto || +450,000 Estudiantes Español.

Lo que aprenderás

  • Ejercitar la lógica de programación
  • Comprender cómo la vida cotidiana puede ser fácilitada o simulada con código
  • Aprender programación desde cero
  • Usar Visual Studio Code como Editor de Código
  • Conocer y aprender el lenguaje de programación Python
  • Ser un programador desde cero, sin conocimiento en otro lenguaje o con algo previo
  • Mejorar las habilidades de programación, mejorar procesos y fácilitar la comprensión de código
  • Preparar un entorno dónde programar en Python
  • Operaciones aritméticas y jerarquía de Python
  • Manejo de cadenas en Python
  • Digitar datos por teclado con Python
  • Mostrar Datos por Pantalla al usuario en Python
  • Operadores Relacionales de Python
  • Operadores Lógicos de Python
  • Condicionales en Python
  • Estructuras de Datos: Listas, Tuplas y Diccionarios
  • Iteraciones y bucles repetitivos de Python
  • Segmentar Código y hacerlo más eficaz con las Funciones en Python
  • Gestionar posibles errores que puedan dar tus programas
  • Programación Orientada a Objetos
  • HTML y CSS
  • Selenium Web Driver con Python
  • Ejercitar todo lo Aprendido con Ejercicios

Este curso incluye:

  • 25,5 horas de vídeo bajo demanda
  • 21 artículos
  • 148 recursos descargables
  • Acceso en dispositivos móviles y TV
  • Certificado de finalización

Python es Hoy uno de los lenguajes más utilizados por Excelencia.

Esto se debe por su simpleza al momento de Desarrollar aplicaciones.

Por su capacidad de procesamiento a altas velocidades con grandes volúmenes de información.

Es un increíble lenguaje con el cual si no sabes programar, podrás aprender.

Y si ya sabes desarrollar, te aconsejo aprenderlo ya que en el mercado cada vez se solicitan más desarrolladores en Python.

Aspirar al trabajo que desean, o mejorar sus ingresos con un aumento de salario.

Python se utiliza para muchisimas cosas como:

  • Machine Learning
  • Data Science
  • Inteligencia Artificial.
  • Y mucho más!

En este curso te acompañare en el proceso por el cual aprenderás las bases del lenguaje, para luego determinar qué camino quieres seguir.

Te invito que me acompañes a conocer este Gran Lenguaje!

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes serguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/como-iniciarse-en-ciberseguridad-y-hacking-en-2024/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Cómo Iniciarse en Hacking y Ciberseguridad en 2024

Curso Gratis Linux – Capitulo 1 – Introducción a Linux

https://achirou.com/curso-gratis-linux-capitulo-1-introduccion-a-linux/

Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios

Como iniciarse en TRY HACK ME – Complete Beginner #1

OSINT #1 Más de 200 Search Tools

Dejá un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio