Coruniversitaria, Corporación Universitaria de Ibagué
Facultad de Ingeniería de Sistemas

Estructuras de Datos I 

Inicio

Generalidades

Ejercicios

Talleres

Proyecto

  Talleres

 

  • El siguiente programa utiliza un arreglo de caracteres
    para validar una palabra clave de usuario. Usted debe modificar el codigo para que el usuario tenga
    tres oportunidades de intentar digitar correctamente su password.

    #include "iostream.h"
    #include "conio.h"
    #include "stdlib.h"
    #define lp clrscr()

    void miclave(){
       char c,nom[25],passwd[]="GmV1827";
       int i; lp;
       cout << "Su nombre? -> "; cin.getline(nom,25);lp;
       cout << "Por favor, digite su password -> ";
       for(i=0; i<7; i++){
           c=getch();
           cout << "*";
           if(c != passwd[i]){
                cout << endl <<"Usuario(a) no autorizado(a)!!!...";
                getch();
                exit(1);
           }
       }
       cout << endl <<"Bienvenido(a) "<< nom << "!!!"<< endl;
       cout << "presione cualquier tecla..."<< endl;
       getch();
    }

    main(){
       miclave();
    }

--------------------------------------------------------------

  •  Modificar la función/procedimiento ordenar de los siguientes  programas  para controlar el número de pasadas al arreglo. Una variable deberá  indicar si  el vector ya está ordenado, para no entrar al ciclo  innecesariamente:

--------------------------------------------------------------

En Lenguaje C :

// Programa para ordenar un arreglo en forma ascendente  utilizando  el metodo de intercambio directo o tipo BURBUJA.

#include "iostream.h"
#include "stdio.h"
#include "conio.h"
#define L clrscr()
#define T 10
int i;  // variable global

void imprimir(int v[]){
  for(i=0;i<=T-1;i++)
    cout << v[i] << " ";
}

void ordenar(int v[]){
// Esta funcion ordena el arreglo ascendentemente
int p,aux;
for(p=1;p<=T-1;p++)
  for(i=0;i<=T-2;i++)
     if (v[i] > v[i+1])
    {
       aux    = v[i];
       v[i]    = v[i+1];
       v[i+1]= aux;
     }
}

void main()
{
int vec[]={5,17,3,1,14,7,80,69,18,27}; // Inicializacion del     arreglo
L;
cout <<"Listado del vector original:"<< endl;
imprimir(vec); // Llama la funcion y le pasa la direccion del    arreglo
ordenar(vec);
cout << "\n\nListado del vector en orden ascendente:"<< endl;
imprimir(vec);
cout << "Presione cualquier tecla para terminar..."; getch();
}

En Lenguaje PASCAL :

program BURBUJA;
{ Programa para ordenar un arreglo en forma ascendente
utilizando el metodo de Intercambio directo o tipo
Burbuja.
}
uses crt;
const 
T = 10;
type
v = array[1..T] of integer;
var
vec : vec;
i,p,aux : integer;

PROCEDURE leer_vec;
begin
writeln('Leer ',T,' numeros enteros:');
for i:= 1 to T do
readln(vec[i]);
end;

PROCEDURE imprimir_vec;
begin
for i:= 1 to T do
write(vec[i],' ');
writeln;
end;

PROCEDURE ordenar_vec;
begin
for p:=1 to T-1 do
for i:=1 to T-1 do
if (vec[i] > vec[i+1]) then
begin
aux := vec[i];
vec[i] := vec[i+1];
vec[i+1] := aux;
end;
end;

BEGIN
textbackground(BLUE); textcolor(WHITE); clrscr;
leer_vec;
clrscr;
writeln('Listado del vector original');
imprimir_vec;
ordenar_vec;
writeln('Listado del vector en orden ascendente'); 
imprimir_vec;
write('Presione cualquier tecla para terminar...');
readln;
END.

--------------------------------------------------------------

  • En la final de un campeonato de fútbol participaron 5 equipos jugando todos contra todos. Se registraron los resultados de los marcadores en una tabla, donde el contenido de cada celda corresponde al número de goles que el equipo del renglón (fila) i le anotó al equipo de la columna j
    Por ejemplo, si la tabla fuera así:
- 1 3 2 1
0 - 4 2 5
2 1 - 1 0
0 3 0 - 1
1 1 3 0 -

ELEMENTO[1][3] = 3
ELEMENTO[3][1] = 2
Significa que el equipo 1 le ganó al equipo 3
por marcador de 3-2 (3 goles a 2).

Codificar un programa modular que permita leer estos resultados en una matriz. También se deben inicializar en un vector los nombres de los cinco equipos  (p.ej:Tolima,Cali,Junior,America,Nacional).

Sabiendo que con un empate ambos equipos ganan un punto y que si alguno gana obtiene tres puntos y el otro cero:

a)  Agregue al programa las instrucciones necesarias para que
     se cree un arreglo con los goles que anotó cada equipo.
b)  Visualizar el nombre del equipo que más goles marcó.
c)  Determinar el nombre del equipo ganador del campeonato y
     mostrar cuántos puntos obtuvo.

--------------------------------------------------------------




  


Inicio | Biografía | Cursos | Para pensar... | Para reflexionar... | Para reir | Enlaces

 
Profesor Gustavo Martínez Villalobos
Email: gustavo.martinez@unibague.edu.co
Facultad de Ingeniería de Sistemas, Coruniversitaria
Ibagué, Tolima, COLOMBIA