Documente Academic
Documente Profesional
Documente Cultură
Línea
Algoritmos y Estructura de Datos
II Ciclo
Ingeniería de Sistemas
DATOS DE IDENTIFICACIÓN
SEMESTRE ACADÉMICO :
ESTUDIANTE :
FACULTAD :
ESCUELA PROFESIONAL :
80 40 50 70
10 27 42 31
15 30 25 10
90 5 175 85
55 35 45 105
2. Diseñar un algoritmo que encuentre el menor y mayor valor del siguiente vector:
A[]= 70 80 100 50 20 10 30 60 35 40
N=10
A[]= 15 30 12 50 70 30 25 35 33 13
4. Diseñe un algoritmo que permita ingresar una frase y una palabra a buscar, y determine si
encontró la palabra o no.
2
5. Diseñe un algoritmo para ordenar el siguiente vector, utilice el método de ordenamiento
por selección.
N=10
A[]= 15 30 12 50 70 30 25 35 33 13
DESARROLLO
1. Mencione y describa las principales funciones para el manejo de cadenas
Calculo de la longitud
comparacion
concatenacion
extracción de subcadenas
búsqueda de informacion
3
int strlen(const char *s) -- Calcula la longitud de la cadena de caracteres.
char *strncat(char *s1, const char *s2, size_t n) -- Agrega n caracteres de
s2 a s1.
int strncmp(const char *s1, char *s2, size_t n) -- Compara los primeros n
caracteres de dos cadenas.
char *strncpy(const char *s1, const char *s2, size_t n) -- Copia los
primeros n caracteres de s2 a s1.
strcasecmp(const char *s1, const char *s2) -- versión que ignora si son
mayúsculas o minúsculas de strcmp().
strncasecmp(const char *s1, const char *s2, size_t n) -- versión insensible
a mayúsculas o minúsculas de strncmp() que compara los primeros n
caracteres de s1.
SOLUCION 1
Fin _ para
Fin _ para
fin
4
SOLUCION 2
variables
Num : arreglo [1..10] de enteros
X: entero
may: entero
men<-entero
Inicio
may<-0;
Para x 1 hasta 10 hacer
Escribir (‘ingrese valores numero’,x,’?’)
Leer (Num[x])
Fin _ para
-----hallando el mayor --------
Para y1 1 hasta 10 hacer
si(num[y1]>may) entonces
may<-num[y1];
fin_si
Fin _ para
-----------------------------------
Hallando el menor
men<-may
Fin _ para
----------------------------------------
Escribir(‘el numero mayor es’,may)
Escribir(‘el numero menor es’,men)
Fin
OTRA SOLUCIÒN
A[]=
Algoritmo:
5
Código
inicio
//declarando el vector
int A[10];
//poblando el array de números
A[0] = 70;
A[1] = 80;
A[2] = 100;
A[3] = 50;
A[4] = 20;
A[5] = 10;
A[6] = 30;
A[7] = 60;
A[8] = 35;
A[9] = 40;
//declarando un entero que contendrá el número mayor
int numMayor = 0;
//ciclo para recorrer el array
for (int i=0; i<5; i++)
{
if (A[i] > numMayor)
{
numMayor = A[i];
}
}
SOLUCION 3
Inicio
variables
Num : arreglo [1..10] de enteros
X: entero
Con1: entero
Con2 <-entero
Inicio
Con1<-0;
Con2<-0;
6
Fin_si
Si(Num[x]<20 )entonces
Con2<-con2+1
Fin_si
Fin _ para
SOLUCION 4
fin_para
si(b2=0)entonces//si no encontramos letras distintas en la frase, es que
acabamos de encontrar la palabra en la frase!
7
}
retornar b1;//si llegamos aqui es que no encontramos la palabra
}
inicio()
{
Z: entero
Frase[200], palabra[25] : cadena
escribir (‘Ingrese una linea de texto’)
leer(frase)
escribir (‘Ahora ingrese la palabra de cual desea saber su ubicación’)
leer(palabra)
z=esta_en_frase(palabra,frase)
si(z>=0) entonces
escribir(‘La palabra ( "<<palabra<<" ) inicia en la posicion ‘)
sino
escribir(‘La palabra no se encuentra en la frase’)
fin
___
Comprobación en c
#include<iostream>
#include<string>
#include<conio>
using namespace std;int esta_en_frase(char palabra[], char frase[])
{
//funcion que regresa la posicion de "palabra" en "frase"
//regresa -1 si no encuentra la palabra en la frase
int i,j,x,y,b1,b2;
//obtenemos las longitudes de las palabras
x=strlen(frase);
y=strlen(palabra);
//Indicamos que aun no hemos encontrado la palabra en la frase
b1=-1;
//ciclo que recorre la frase
for(j=0;j<x-y+1;j++)//pregunta 1: porque no hay que recorrer hasta el final de la
frase?
{
//indicamos que no hemos encontrado letras diferentes
b2=0;
//ciclo que recorre la palabra
for(i=0;i<y;i++)
if(palabra[i]!=frase[j+i])//buscamos si algun caracter no coincide con la palabra
{
//si una letra no cincide, pues le paramos
b2++;//hay al menos una letra diferente
8
break;
}
if(b2==0)//si no encontramos letras distintas en la frase, es que acabamos de
encontrar la palabra en la frase!
{
b1=j;//posicion donde encontramos la palabra
return b1;//regresamos valor y termina la funcion
}
}
return b1;//si llegamos aqui es que no encontramos la palabra
}
int main()
{
int z;
char frase[200], palabra[25];
cout<<"Ingrese una linea de texto"<<endl;
cin.getline(frase, 200);
cout<<"\nAhora ingrese la palabra de cual desea saber su ubicacion"<<endl;
cin.getline(palabra, 25);
z=esta_en_frase(palabra,frase);
if(z>=0)
cout<<"La palabra ( "<<palabra<<" ) inicia en la posicion "<<z<<endl;
else
cout<<"La palabra no se encuentra en la frase"<<endl;
getch();
}
SOLUCION 5
Algoritmo seleccion
Var
Num : arreglo [1..10] de enteros
I,j,k,tem : enteros
Inicio
Para x 1 hasta 5 hacer
Escribir (‘ingrese valores numero’,x,’?’)
Leer (Num[x])
Fin _ para
K=i
9
Para j<- 0 hasta 5 hacer
Si (a[j]>a[k]) entonces
temp=a[j]
a[j]=a[k];
a[k]=temp;
fin_si
fin _para
escribir (‘lista ordenada’);
para i<-0 hasta 5
escribir(a[i]) -- muetra la lista ordenada
fin para
fin
comprobación en c
for(i=0;i<max;i++){
k=i;
for(j=0;j<max;j++)
if (a[j]>a[k])
{
temp=a[j];
a[j]=a[k];
a[k]=temp;
}
}
printf("\n\r Lista en Orden\n\r");
for(i=0;i<max;i++)
printf("%5d",a[i]);
}
10