jueves, 21 de mayo de 2026

03a.- Programación I - Estructuras

Una estructura de datos  permite almacenar un conjunto de elementos no necesariamente del mismo tipo. Los vectores y matrices son similares a las estructuras pero tienen la limitante de almacenar un conjunto de datos del mismo tipo.

Ejemplo de estructuras podrían ser los datos de un alumno (CI, apellido y nombre, carrera que cursa), 

veamos un ejemplo de una estructura:

struct datos {
    int codigo;
    string descripcion;
    float precio;
};                                  //obligatorio el punto y coma

La estructura se declara antes del programa principal, cuando queremos que una variable 
disponga de todos los parámetros de la estructura basta con declararla de la siguiente forma: 
main()
{
	datos productos;
Cuando declaramos una variable entera lo hacemos int variable cuando queremos que la variable 
tenga todos los parámetros de la estructura se declara de la siguiente forma nombre_estructura variable
para nuestro ejemplo la estructura se llama datos y la variable que tendrá los parámetros
de la estructura será productos.
 
Ahora podremos representa los elementos de la estructura en la variable, representándolas como:
para nuestro ejemplo:
productos.codigo;
productos.descripcion;
productos.precio;

EJEMPLO

/* Programa que registra los datos de una cantidad limitada de pacientes
usando estructuras

Elaborado por Carlos Ferrer
Rev. Mayo 2023
*/


#include <iostream>

using namespace std;

struct datos  //Estructura datos
{
	string nombre;
	int ci;
	int edad;
	float peso;
	char sexo;
};

main()
{
	
	datos paciente[100];
	int cantidad;
	int i=1;
	
//REGISTRO DE LOS DATOS DE LOS PACIENTES
	cout <<"Ingrese la cantidad de pacientes a registrar = ";
	cin >>cantidad;
	cout <<endl<<endl;
	while (i<=cantidad)
	{
		cout <<"Ingrese nombre del paciente nro["<<i<<"] = ";
		cin.ignore();
		getline (cin,paciente[i].nombre);
		cout <<"Ingrese el nro. de CI del paciente nro["<<i<<"] = ";
		cin >>paciente[i].ci;
		cout <<"Ingrese la edad del paciente nro["<<i<<"] = ";
		cin >>paciente[i].edad;
		cout <<"Ingrese el sexo del paciente (F/M) nro["<<i<<"] = ";
		cin >>paciente[i].sexo;
		cout <<"Ingrese el peso del paciente nro["<<i<<"] = ";
		cin >>paciente[i].peso;
		i=i+1;
		system("cls");
	}
	system("cls");

//IMPRESIÓN DE LOS DATOS DE LOS PACIENTES

	for (i=1;i<=cantidad;i=i+1)
	{
		cout <<"Paciente Nro ["<<i<<"]"<<endl<<endl;
		cout <<"Nombre del paciente = "<<paciente[i].nombre<<endl;
		cout <<"Nro. de CI del paciente = "<<paciente[i].ci<<endl;
		cout <<"Edad del paciente = "<<paciente[i].edad<<endl;
		cout <<"Peso del paciente = "<<paciente[i].peso<<endl;
		cout <<"Sexo del paciente (F/M)= "<<paciente[i].sexo<<endl<<endl;
	}	
	
}

jueves, 14 de mayo de 2026

02m.- Programación I - Parcial Nro. 2 - Solución del Profesor (Semestre 2026 - II)

PROGRAMA 

// Programa Parcial Nro. 2 Semestre 2026-II elaborado por Carlos Ferrer Rev. Mayo 2026

#include <iostream>

#include <time.h>

#include <windows.h>

#include <conio.h>

#include <locale.h>

using namespace std;


main()

{

setlocale(LC_ALL,"Spanish");

srand(time(NULL));


// Valor de los dados

int dado1,dado2;


// Variables auxiliares

int cont=0;

int i;


// Contador de 5 seg

float tiempo=0;


//Opción A y B

char opcion;

string frase;


//Seleccionamos la opción requerida

cout <<"Opción (A-a)= Dados Opción (B-b)= Cadena de Caracteres"<<endl;


while(kbhit()==0)

{

}


Beep(150,100);

opcion=getch();


// Opción A

while (cont<10 and (opcion=='A' or opcion=='a'))

{

system("cls");

dado1=1+rand()%6;

dado2=1+rand()%6;

cout << "+-------+" << endl;

if (dado1==1)

    {

    cout << "|       |" << endl;

        cout << "|   o   |" << endl;

        cout << "|       |" << endl;

        goto sigue;

        }

if (dado1==2)

    {

    cout << "| o     |" << endl;

        cout << "|       |" << endl;

        cout << "|     o |" << endl;

        goto sigue;

        }

if (dado1==3)

{

cout << "| o     |" << endl;

        cout << "|   o   |" << endl;

         cout << "|     o |" << endl;

        goto sigue;

        }

if (dado1==4)

        {

        cout << "| o   o |" << endl;

        cout << "|       |" << endl;

       cout << "| o   o |" << endl;

       goto sigue;

       }

if (dado1==5)

    {

        cout << "| o   o |" << endl;

    cout << "|   o   |" << endl;

        cout << "| o   o |" << endl;

        goto sigue;

        }     

if (dado1==6)

    {

        cout << "| o   o |" << endl;

        cout << "| o   o |" << endl;

        cout << "| o   o |" << endl;

        goto sigue;

        }    

sigue:

    cout << "+-------+" << endl;

    cout <<endl<<endl;

    cout << "+-------+" << endl;

if (dado2==1)

    {

    cout << "|       |" << endl;

        cout << "|   o   |" << endl;

        cout << "|       |" << endl;

        goto sigue2;

        }

if (dado2==2)

    {

    cout << "| o     |" << endl;

        cout << "|       |" << endl;

        cout << "|     o |" << endl;

        goto sigue2;

        }

if (dado2==3)

    {

    cout << "| o     |" << endl;

        cout << "|   o   |" << endl;

        cout << "|     o |" << endl;

        goto sigue2;

        }

if (dado2==4)

    {

        cout << "| o   o |" << endl;

        cout << "|       |" << endl;

        cout << "| o   o |" << endl;

        goto sigue2;

        }

if (dado2==5)

    {

        cout << "| o   o |" << endl;

    cout << "|   o   |" << endl;

        cout << "| o   o |" << endl;

        goto sigue2;

        }     

if (dado2==6)

    {

        cout << "| o   o |" << endl;

        cout << "| o   o |" << endl;

        cout << "| o   o |" << endl;

        goto sigue2;

        }    

sigue2:

cout << "+-------+" << endl;

cont=cont+1;

tiempo=tiempo+0.5;

cout <<endl<<"Tiempo = "<<tiempo<<endl;

Beep(150,100);

Sleep(400);

}

// Opción B

if (opcion=='B' or opcion=='b')

{

repite:

system("cls");

cout <<"Favor ingrese una frase de 3 o más palabras = ";

getline (cin,frase);

cont=0;

for (i=0;i<(frase.size()-1);i=i+1)

{

if (frase[i]==' ')

{

cont=cont+1;

}

}

if (frase[0]==' ')

{

cont=cont-1;

}

if (frase[frase.size()-1]==' ')

{

cont=cont-1;

}

if (cont<2)

{

cout <<endl<<"La frase ingresada no tiene tres palabras!!!"<<endl;

Beep(150,100);

Sleep(2000);

goto repite;

}

cout <<endl<<"**** Frase sin consonantes y cantidad de Consonantes ****"<<endl<<endl;

cont=0;

for (i=0;i<(frase.size()-1);i=i+1)

{

if (frase[i]!='A' and frase[i]!='a' and frase[i]!='E' and frase[i]!='e' and frase[i]!='I' and frase[i]!='i' and frase[i]!='O' and frase[i]!='o' and frase[i]!='U' and frase[i]!='u')

{

cout <<frase[i];

if (frase[i]!=' ')

{

cont=cont+1;

}

Beep (150,250);

}

}

cout <<endl<<"Cantidad de Consonantes= "<<cont<<endl<<endl;

}

}



martes, 12 de mayo de 2026

02l.- Programación I - Parcial Nro.2 - Modelo Nro. 3 - Solución del Profesor

 



Solución

/* Programa parcial Nro. 2 - Modelo 3
cátedra: programación I
Profesor: Carlos Ferrer
Semestre (2023-II)
Rev. mayo 2023
*/

#include <iostream>
#include <windows.h>
#include <locale.h>
#include <conio.h>
#include <time.h>
using namespace std;

main()
{
char opcion;
int aux,i,j=0;
float numero;
string frase;
string palabras[100];

setlocale(LC_ALL,"spanish");

// Aplicamos técnica del Kbit / getch

cout <<"ingrese opción según instrucciones ";
repetir:
if (kbhit!=0)
{
opcion=getch();
if (opcion=='N' or opcion=='n')
{
goto Aleatorio1;
}
if (opcion=='$')
{
goto Aleatorio2;
}
}
Beep(250,250);
goto repetir;

//Generamos un numero aleatorio entre -33 y 35

Aleatorio1:
system ("cls");
srand(time(NULL));
aux= -33 + rand()%89;


//Validamos si el numero aleatorio es impar, lo imprimimos y nos salimos del programa

if (aux%2!=0)
{
cout <<"Numero aleatorio impar entre -33 y 35 = ";
cout <<aux<<endl<<endl;
return 0;
}
//Si el numero es par ingresamos la frase

cout <<"El numero aleatorio fue par = "<<aux<<endl<<endl;
nuevamente:
cout <<"Ingrese frase de mínimo cuatro (4) palabras = "<<endl;
getline (cin,frase);

//Validamos si la frase tiene mínimo 4 palabras

for (i=0;i<=frase.size()-1;i=i+1)
{
if(frase[i]==' ')
{
j=j+1;
}
}


if (j<3)
{
j=0;
cout <<"La frase debe ser de 4 palabras!!!";
Beep(250,250);
Sleep (1000);
system ("cls");
goto nuevamente;
}

//Separamos las palabras de la frase en un arreglo string (Palabra por palabra)
j=1;
for (i=0;i<=frase.size()-1;i=i+1)
{
if(frase[i]!=' ')
{
palabras[j]=palabras[j]+frase[i];
}
else 
{
j=j+1;
}
}


//imprimimos las palabras del arreglo en sentido inverso y nos salimos del programa

j=1;

cout <<endl<<"La frase con las letras de cada palabra invertida es:"<<endl;
while (palabras[j].size()>0)
{
for(i=palabras[j].size()-1;i>=0;i=i-1)
{
cout <<palabras[j][i];
}
j=j+1;
cout<<" ";
}
cout <<endl;
return 0;

//Creamos los 10 números aleatorios y los imprimimos en pantalla

Aleatorio2:
system ("cls");
cout <<"Numeros aleatorios :";
srand(time(NULL));
for(i=1;i<=10;i=i+1)
{
aux= -5 + rand()%41;
numero=aux;
numero=numero/10;
cout <<numero;
if (i<=9)
{
cout <<" / ";
}
Beep(500,500);
}
}

02k.- Programación I - Parcial Nro.2 - Modelo Nro. 2 - Solución del Profesor


Solución

/* Programa parcial Nro. 2 - Modelo 2
cátedra: programación I
Profesor: Carlos Ferrer
Semestre (2023-II)
Rev. mayo 2023
*/

#include <iostream>
#include <windows.h>
#include <locale.h>
#include <conio.h>
#include <time.h>
using namespace std;

main()
{
char opcion;
int aux,i,j=0,z=1;
float numero;
string frase;
setlocale(LC_ALL,"spanish");

//Ingresamos frase de 4 palabras

nuevamente:
cout <<"Ingrese frase de mínimo cuatro (4) palabras = "<<endl;
getline (cin,frase);

//Valido si la frase tiene 4 palabras

for (i=0;i<=frase.size()-1;i=i+1)
{
if(frase[i]==' ')
{
j=j+1;
}
}


if (j!=3)
{
j=0;
cout <<"La frase debe ser de 4 palabras!!!";
Beep(250,250);
Sleep (1000);
system ("cls");
goto nuevamente;
}

// si las letras son pares presento números aleatorios

if((frase.size()-3)%2==0)
{
goto aleatorios;
}
//Si las letras son impares aplicamos técnica del Kbit / getch

cout <<"ingrese opción según instrucciones ";
repetir:
if (kbhit!=0)
{
opcion=getch();
if (opcion=='s' or opcion=='s')
{
goto contar;
}
if (opcion=='#')
{
goto extraer;
}
}
Beep(250,250);
goto repetir;

//Imprimimos en pantalla los números aleatorios
aleatorios:
system ("cls");
cout <<"Numeros aleatorios :";
srand(time(NULL));
for(i=1;i<=15;i=i+1)
{
aux= -605 + rand()%661;
numero=aux;
numero=numero/10;
cout <<numero;
if (i<=14)
{
cout <<" / ";
}
Beep(500,1000);
}
return 0;

//Rutina que cuenta las letras de cada palabra

contar:
j=0;
for (i=0;i<=frase.size();i=i+1)
{
if (frase[i]==' ' or i==frase.size())
{
cout <<endl<<"Palabra"<<z<<"="<<j;
j=0;
z=z+1;
}
else
{
j=j+1;
}
}
return 0;

//Rutina que extrae la 3ra palabra de la frase

system("cls");
i=0;
j=0;
while (i<=frase.size())
{
if (j==2)
{
cout<<"La tercera palabra es: ";
while (frase[i]!=' ')
{
cout <<frase[i];
i=i+1;
}
cout <<endl;
return 0;
}
if (frase[i]==' ')
{
    j=j+1;
}
i=i+1;
}
}

02j.- Programación I - Parcial Nro.2 - Modelo Nro. 1 - Solución del Profesor

 

Solución

/* Programa parcial Nro. 2 - Modelo 1
cátedra: programación I
Profesor: Carlos Ferrer
Semestre (2023-II)
Rev. mayo 2023
*/


#include <iostream>
#include <windows.h>
#include <locale.h>
#include <conio.h>
#include <time.h>
using namespace std;

main()
{
char opcion;
int aux,i;
float numero;
string frase;
setlocale(LC_ALL,"spanish");

//aplicamos técnica del Kbit / getch

cout <<"ingrese opción según instrucciones ";
repetir:
if (kbhit!=0)
{
opcion=getch();
if (opcion=='$')
{
goto aleatorios;
}
if (opcion=='Z' or opcion=='z')
{
goto texto;
}
}
Beep(250,250);
goto repetir;
// aplicamos la opción de los números aleatorios
aleatorios:
system ("cls");
cout <<"Números aleatorios :";
srand(time(NULL));
for(i=1;i<=15;i=i+1)
{
aux= -3 + rand()%31;
numero=aux;
numero=numero/10;
cout <<numero;
if (i<=14)
{
cout <<" / ";
}
Beep(500,250);
}
return 0;
// aplicamos la opción de la frase
texto:
system ("cls");
cout <<"Ingrese frase de mínimo cuatro (4) palabras = "<<endl;
getline (cin,frase);
        for (i=0;i<frase.size()-1;i=i+1)
        {
        if(frase[i]==' ')
        {
        frase[i]='-';
}
}
cout <<endl<<"Resultado: "<<frase<<".";
}