Documente Academic
Documente Profesional
Documente Cultură
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.
int main()
{ int i,k;
int matriz[4][4];
for(i=0;i<4;i++)
{for(k=0;k<4;k++)
cin>>matriz[i][k];}}
for(i=0;i<4;i++)
{cout<<"\n";
for(k=0;k<4;k++)
cout<<" "<<matriz[i][k];}
for(i=0;i<4;i++)
{cout<<"\n";
for(k=0;k<4;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.
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:
………………CantidadNotas……………………….………………………..
………………LeerNotas……………………….………………………..
………………EscribirNotas……………………….………………………..
………………SumaNotas……………………….………………………..
………………PromNotas……………………….………………………..
Ejemplo
Para arreglos bidimensionales
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
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:
También:
Nombre char
0
1 o bien:
2
3
4
o bien:
OPERACIONES CON CADENAS
char nombre[30];
Lectura Escritura
cout<<”Ingrese su nombre: ”; cout<<”Hola” << nombre;
cin>> nombre; // si ingresa …………………
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”);
NO FUNCIONA:
strupr (cad);
imprime
cout<<cad; cout<< strupr (cad); cout<< strupr (“Hola”);
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;
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 ……….
Sino devuelve 0
Ejemplo:
Buscar si una subcadena se encuentra en una cadena
strstr (cadena1,cadena2)
Si cadena2 forma parte de cadena1 devuelve ……….. (……………………………..)
Ejemplo:
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
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);
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")));
.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
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.
.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.