Sunteți pe pagina 1din 28

Universidad Nacional de Trujillo

CURSO:
ALGORITMOS Y PROGRAMACIÓN

ARREGLOS Y CADENAS
(TEORIA Y PRACTICA)

NOMBRES Y APELLIDOS:…............................................................…………
ARREGLO
• Un arreglo en C++ es un conjunto de datos del …………………………….., es decir, o todos son
enteros, o todos son reales, etc.
• Se almacenan en memoria de manera contigua con el …………………………………………...
• Para diferenciar los elementos de un arreglo se utilizan ………………………………..detrás del
nombre del arreglo y encerrados por [].
• Los índices comienzan en 0. Esto significa que un arreglo de 10 elementos tendría los
índices del 0 al 9: [0...9]
Operaciones con arreglos unidimensionales
.1. Programa que permite el ingreso de notas de un alumno. Una vez ingresados, debe
mostrar:
Las notas ingresadas, su puntaje y su nota mayor
int main ()
{int N;
cout<<"ingrese numero de notas;";
cin>>N;
int nota[N], I;
Escribir un programa que pida 10 números enteros por teclado y que imprima por
pantalla:
Cuántos de esos números son pares.
Cuál es el valor del número máximo.
Cuál es el valor del número mínimo

int main ()
{
Escribir un programa que lea un vector de 10 elementos. Deberá imprimir el mismo
vector por pantalla pero al revés.
Ejemplo:
Dado el vector 1 2 3 4 5 6 7 8 9 10
el programa debería imprimir 10 9 8 7 6 5 4 3 2 1.
Escribir un programa que lea una matriz de 3 filas y 3 columnas de valores enteros.
A continuación, el programa debe pedir el número de una fila. El programa deberá
devolver el máximo de esa fila.
Escribir un programa que lea una matriz de 4 filas y 4 columnas de valores enteros.

A continuación, el programa debe mostrar los elementos de la diagonal principal

int main()

{ int i,k;

int matriz[4][4];

/*** LLENANDO MATRIZ ***/

for(i=0;i<4;i++)

{for(k=0;k<4;k++)

{cout<<"\n Valor de la fila "<<i+1<<" columna "<<k+1<<" : " ;

cin>>matriz[i][k];}}

/*** IMPRIMIENDO MATRIZ***/

cout<<"\n\n ESTA ES LA MATRIZ ->\n";

for(i=0;i<4;i++)

{cout<<"\n";

for(k=0;k<4;k++)

cout<<" "<<matriz[i][k];}

/*** IMPRIMIENDO diagonal***/

cout<<"\n\n ESTA ES LA DIAGONAL MATRIZ ->\n";

for(i=0;i<4;i++)

{cout<<"\n";

for(k=0;k<4;k++)

{if (i==k) cout<<" "<<matriz[i][k];}}

getch();}
Escribir un programa que lea un matriz de enteros de 2 filas y 4 columnas y muestre por
pantalla la traspuesta a dicha matriz.
Ejemplo:
Entrada:
2 3 4 5 Salida 2 7
7 6 5 4 3 6
4 5
5 4
Arreglos y Funciones
• Cuando una función recibe cualquier arreglo como parámetro, hay que
especificar el ………………..y …………………del arreglo y para los arreglos
unidimensionales no es necesario especificar su tamaño.

• Adicionalmente se pasa un parámetro que especifica el numero de elementos


que hay en el arreglo.

TipoFuncion NombreFuncion (TipoArreglo NombreArreglo[], int Numero elementos)


{
Sentencia 1;
Sentencia 2;
.
Sentencia N;
}

Ejemplo:
void LeerNotas(float A[], int tam)
{
Sentencia 1;
Sentencia 2;
.
Sentencia N;
}

Para pasar el arreglo a la función se hace solo con el nombre del arreglo

Ejemplo:

LeerNotas(A,tam);
Ejemplo:

Para arreglos unidimensionales

Dado el siguiente programa principal, implementar las funciones invocadas:

………………CantidadNotas……………………….………………………..

………………LeerNotas……………………….………………………..
………………EscribirNotas……………………….………………………..

………………SumaNotas……………………….………………………..

………………PromNotas……………………….………………………..
Ejemplo
Para arreglos bidimensionales

Dado el siguiente programa principal, implementar las funciones invocadas:

int main()
{
int A[10][10], B[10][10], C[10][10];
int fila,col;
cout<<"ingrese filas:";
cin>>fila;
cout<<"ingrese columnas:";
cin>>col;
cout<<"Ingreso Primera Matriz"<<endl;
llenarMatriz(A,fila,col);
MostrarMatriz(A,fila,col);
cout<<"Ingreso Segunda Matriz"<<endl;
llenarMatriz(B,fila,col);
MostrarMatriz(B,fila,col);
cout<<"La suma es: "<<endl;
SumarMatriz(A,B,C,fila,col);
MostrarMatriz(C,fila,col);
getch();
}
………………llenarMatriz……………………….………………………..

………………MostrarMatriz……………………….………………………..

………………SumarMatriz……………………….………………………..
Practica
Un cuadrado mágico 3 x 3 es una matriz 3 x 3 formada por números del 1 al 9 donde

la suma de sus filas, sus columnas y sus diagonales son idénticas.

Crear un programa que permita introducir un cuadrado por teclado y determine si este

cuadrado es mágico o no. El programa deberá comprobar que los números introducidos son
correctos, es decir, están entre el 1 y el 9.
CADENA DE CARACTERES
Una cadena de caracteres es
……………………………………………………………………………………………………………………………….
Los programas C++ utilizan mucho las cadenas de caracteres para guardar nombres.
Ejemplos de cadenas:

C++ almacena una cadena de caracteres como un


……………………………………………………………………………………….
La diferencia principal entre las cadenas de caracteres y otros tipos de arreglos es
…………………………………….
…………………………………………………………………………………………………………………………………………………………
………..
C++ representa el final de una cadena de caracteres utilizando el
…………………………………………………………..
El carácter NULL equivale a …………………………………..

Empleo del caracter NULL


Una cadena de caracteres es un arreglo de caracteres seguido por
………………………………………………………………….
Cuando los programas declaran cadena de caracteres, declaran un arreglo de tipo
…………………………..
Cuando más adelante el programa asigna los caracteres a la cadena , el programa es responsable
de añadir el carácter ……………., que representa el …………………………………………….. Cuando el
programa utiliza cadenas constantes encerradas dentro de comillas, el compilador C++ añade
automáticamente al carácter NULL . La mayoría de las funciones del C++ utilizan el carácter NULL
para determinar el ………………………………………………….
……………………………………………..

Declaración de cadena de caracteres


Se declara como un arreglo de tipo char
Ejemplo:

También:

Una cadena de caracteres se puede inicializar en la declaración:


Si el número de caracteres asignado a la
char Nombre[20] = “Luis Pérez”;
cadena es menor que el tamaño del arreglo,
0 1 2 3 4 5 6 7 8 9 10 11 ….. 19 la mayoría de los compiladores del c++
asignará caracteres NULL al resto de la
cadena

char Nombre[ ] = “Luis Pérez”; Si no se especifica el tamaño de una cadena


que se inicializa en la declaración, el
0 1 2 3 4 5 6 7 8 9 10 compilador del c++ asignará la suficiente
memoria como para contener los símbolos
especificados, más el carácter NULL
Declaración de un arreglo de cadenas:

Nombre char
0
1 o bien:
2
3
4

El arreglo de cadenas se puede inicializar en la declaración:

char *Nombre [5] =

o bien:
OPERACIONES CON CADENAS
char nombre[30];

Lectura Escritura
cout<<”Ingrese su nombre: ”; cout<<”Hola” << nombre;
cin>> nombre; // si ingresa …………………

gets(nombre); // Si ingresa …………………


La función gets está definida ……………………..

Manipulación de cadenas
Para la manipulación de cadenas existen una serie de funciones definidas en el archivo cabecera …………………….

char cad(20)

Asignación
strcpy (cad, ”Algoritmos y Programación”);

COPIA LA CADENA ”Algoritmos y Programación EN cad.

NO FUNCIONA:

Imprimir una cadena a mayúsculas char cad[15]=”Hola”;

strupr (cad);
imprime
cout<<cad; cout<< strupr (cad); cout<< strupr (“Hola”);

Imprimir una cadena a minúsculas char cad[15]=”CHAU”;

strlwr (cad);
imprime
cout<<cad; cout<< strlwr (cad); cout<< strlwr (“CHAU”);
Longitud de una cadena char cad[15]=”hola”;
int long;
long=strlen(cad);
cout<< “su longitud es: “ << strlen(cad);
cout<< “su longitud es: “ <<long;

Concatenación de cadenas char cad1[15]=”Luis”, cad2[15]=”Pérez”;


concatena cad1 y cad2 y lo guarda en cad1

strcat(cad1,cad2); imprime
cout<<cad1; cout<< strcat(“Luis”,”Pérez”);

Comparación de cadenas
strcmp(c1,c2) c1 y c2 son cadenas strcmp
stricmp NO
Si c1<c2 devuelve <0
Si c1==c2 devuelve 0
Si c1>c2 devuelve >0
strcmp (“ANA”, “ana”) devuelve ……….
stricmp (“ANA”, “ana”) devuelve ……….

Buscar si un caracter se encuentra en una cadena


strchr (cadena,caracter)
Si caracter está en la cadena devuelve ……… (……………………………..)

Sino devuelve …………

Ejemplo: strchr(“Pedro”, ´e´) devuelve ……….. (…………………………………)

Sino devuelve 0

Ejemplo:
Buscar si una subcadena se encuentra en una cadena
strstr (cadena1,cadena2)
Si cadena2 forma parte de cadena1 devuelve ……….. (……………………………..)

Sino devuelve …………

Ejemplo:

Strstr(“¿Cómo estás?”, “Como”) devuelve ………… (…………………………………..)


Ejercicios:
Ingrese una palabra y determine si es una palabra palíndrome o no.

Un palíndromo (del griego palin dromein, volver a ir hacia atrás) es una palabra, número o frase
que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa.
Ejemplos:
Ana, arenera, arepera, anilina, ananá, Malayalam, Neuquén, Oruro, oso, radar, reconocer, rotor,
salas, seres, somos, sometemos, ala, entre otras.

int main()
{ char palabra[0];
char reves[0];
int lang;
cout<<"Ingrese palabra: ";
gets(palabra);
lang=strlen(palabra);
for(int j=0, i=lang-1; i<=0, j<lang; i--, j++)
reves[j]=palabra[i];
cout<<"palabra al reves: "<<reves<<endl;
if(stricmp(reves,palabra)==0)
cout<<"Es palindrome ";
else
cout<<"No es palindrome";

getch();
}
Dado el siguiente programa principal, implementar la función contador

int main()
{ char frase[40];
cout<<"DIGITE LA PALABRA O FRASE "<<endl; Función contador:
gets(frase); Cuenta cuántas
1. vocales,
strupr(frase); 2. Consonantes o caracteres especiales y
3. espacios hay en una frase.
contador(frase);
getch(); }
Dado el siguiente programa principal, implementar la función Cifrar

int main(void)
Función Cifrar:
{ char clave[ ]="abanico chino"; Cifra la clave:
strupr(clave); Las vocales por X
Cifrar(clave); Las consonantes por C
Los espacios por _
getch( );}
Diccionario bilingue

# include<conio.h>
# include<iostream>
# include<string.h>
# include<stdio.h>
# define max 5

using namespace std;

int main(void)
{char nombre[15];
char *ingles[max]={"ONE","TWO","THREE","FOUR","FIVE"};
char *castellano[max]={"UNO","DOS","TRES","CUATRO","CINCO"};
char busca[10];
char fin[1];
int flag;
cout<<endl<<"escriba su nombre: " ;
gets(nombre);

cout<<"Bienvenidos al diccionario bilingue "<<nombre;

do
{ cout<<endl<<"Ingrese el numero en ingles"<<endl;
cin>>busca;
flag=0;
for(int i=0;i<max;i++)
if (stricmp(busca,ingles[i])==0)
{ cout<<"En castellano es: "<<castellano[i];
flag=1; }

if (flag==0)
cout<<"palabra no encontrada";
cout<<endl<<"desea continuar S/N: ";
cin>>fin;
strupr(fin);
}while (!(strcmp(fin,"S")));

cout<<"Gracias por su consulta "<<nombre;


getch(); }
LABORATORIO ARREGLOS
UNIDIMENSIONALES
.1. Escriba un programa que dada una lista de 10 números enteros, muestre los número pares

.2. Escriba un programa que dada una lista de 5 notas, muestre cuántas veces aparece en la lista
de notas un 20

.3. Desarrolle un programa que recorra un arreglo de enteros (el tamaño del arreglo es definido
por el usuario) evalúe si sus datos son múltiplos de 7 y los muestre en pantalla.

.4. Una Universidad requiere un programa que le permita conocer cómo califican los estudiantes la
comida de la cafetería central. Para ello definió una escala de 0 a 5(0 es pésimo y 5 es excelente).

El programa debe ser capaz capturar la calificación de cualquier número de estudiantes (no se
sabe cuántos estudiantes se encuestarán, así que cuando el encuestador ingrese la calificación de
100, se sabrá que la encuesta habrá concluido). El valor 100 actúa como centinela.

El programa deberá mostrar en su salida cuántos estudiantes fueron encuestados así como el
resumen de la encuesta con histograma así:

Estudiantes encuestados: 25

Frecuencia de las calificaciones Numero Estudiantes Histograma

0 2 **
1 5 *****
2 10 **********
3 4 ****
4 1 *
5 3 ***

Utilice un arreglo de enteros de 6 elementos para almacenar la frecuencia con la que ocurre cada
calificación

BIDIMENSIONALES
.5. Escribir un programa que lea una matriz de 3 filas y 3 columnas de valores enteros.

A continuación, el programa debe mostrar la suma de los elementos de su diagonal principal

.6. Escribir un programa que lea una matriz de 4 filas y 3 columnas de valores reales (tipo float).

A continuación, el programa debe pedir el número de una columna. El programa deberá devolver
la suma de los elementos de dicha columna.

.7. Escribir un programa que lea una matriz de números enteros y que devuelva la suma de los
elementos positivos de la matriz y la suma de los elementos negativos.

.8. Escribir un programa que lea una matriz de 4 filas y 3 columnas, la visualice por pantalla y a
continuación encuentre el mayor y el menor elemento de la matriz y sus posiciones.

S-ar putea să vă placă și