Sei sulla pagina 1di 6

Resolucin Segundo Parcial

Ejercicio 1

Escribir un programa en Lenguaje de Diseo que permita ingresar hasta 100 nmeros enteros positivos,
luego muestre:

a) Todos los nmeros ingresados mltiplos de 2.


b) Todos los nmeros ingresados mltiplos de 3 ubicados en posiciones pares.
c) Todos los nmeros ingresados mltiplos de 4 ubicados en posiciones impares.
Nota: El programa debe respetar e implementar adecuadamente el concepto de modularizacin.

SUBALGORITMO INGRESO (IN OUT A: ARREGLO DE ENTERO, IN LI: ENTERO, IN


LS:ENTERO)
I: ENTERO
PARA I DESDE LI HASTA LS CON PASO 1 HACER
ESCRIBIR INGRESE UN NUMERO ENTERO POSITIVO
LEER A[I]
MIENTRAS A[I]<1 HACER
ESCRIBIR INGRESAR NUEVAMENTE
LEER A[I]
FINMIENTRAS
FINPARA
FIN

SUBALGORITMO MUESTRA (IN OUT A: ARREGLO DE ENTERO, IN LI, LS, P:


ENTERO, IN MUL: ENTERO)
COMENZAR
I: ENTERO
PARA I DESDE LI HASTA LS CON PASO P HACER
SI A[I]//MUL==0 ENTONCES
ESCRIBIR A[I]
FINSI
FINPARA
FIN

ALGORITMO PARCIAL
COMENZAR
A:ARREGLO [1..100] DE ENTERO
I, CANT: ENTERO

ESCRIBIR INGRESE CANTIDAD NECESARIA


LEER CANT
MIENTRAS CANT < 1 O CANT >100 HACER
ESCRIBIR INGRESE CANTIDAD NUEVAMENTE
LEER CANT
FINMIENTRAS
INGRESO (A, 1, CANT)
MUESTRA (A, 1, CANT, 1, 2)
MUESTRA (A, 2, CANT, 2, 3)
MUESTRA(A, 1, CANT, 2, 4)
FIN

Ejercicio 2

Escribir un programa en Lenguaje C, que permita ingresar una oracin terminada con un punto,
formada por palabras (letras minsculas y maysculas) donde cada palabra se encuentra separada de la
siguiente por UN espacio. Luego el programa deber contar cuntas palabras tiene la oracin. Si la
cantidad de palabras supera a 10, transformar todas las minsculas a maysculas.
Las tareas de ingreso, cuenta y transformacin deben llevarse a cabo mediante funciones
independientes y no puede hacer uso de variables globales.

#include <stdio.h>

int ingreso(char p[], int ls) {


int i=0;
printf("Ingrese letra\n");
scanf("%c", &p[i]); getchar();
while((p[i]<'A' || (p[i]>'Z' && p[i]<'a') || (p[i]>'z')) && p[i]!=' '
&& p[i]!='.'){
printf("Ingrese nuevamente letra o espacio\n");
scanf("%c", &p[i]); getchar();
}
for ( i=0; i < ls && p[i-1]!='.'; i++ ){
printf("Ingrese letra o espacio\n");
scanf("%c", &p[i]); getchar();
while((p[i]<'A' || (p[i]>'Z' && p[i]<'a') || (p[i]>'z')) &&
p[i]!=' ' && p[i]!='.'){
printf("Ingrese nuevamente letra o espacio\n");
scanf("%c", &p[i]); getchar();
}
}
return(i);
}

int cuenta(char p[], int li, int ls, int limite) {


int cant=0,i;

for (i = li; i<=ls; i++){


if (p[i]==' ' || p[i]=='.')
cant++;
}
if (i==limite) cant++;
return(cant);
}
void transformacion(char A[], int li, int ls){
int i;
for(i=li;i<ls;i++)
if (A[i]>='a' && A[i]<='z') A[i]=A[i]-32;
}
int main() {
char A[100];
int ls=100,limite=100,cont;

ls=ingreso(A,ls);
cont=cuenta(A,0,ls,limite);

if (cont > 10)


transformacion(A, 0, ls);

return(0);
}

Ejercicio 3
Dado el siguiente programa:
a) Especifique el mbito de las variables (en hoja aparte, NO lo resuelva en la hoja del enunciado).
b) Realice una ejecucin completa del mismo, indicando el estado de todas las variables en las
diferentes etapas.
#include <stdio.h>

int insertar(char p[],int tam) {


int posi,i; char letra;

printf (Ingrese posicion\n);


scanf(%d, &posi); getchar();
printf (Ingrese letra\n);
scanf(%c, &letra); getchar();
for (i = tam+1; i > posi; i--)
p[i]=p[i-1];
p[i]=letra;
return(0);

int ingreso(char p[], int tam) {


int i;
printf(Ingrese la secuencia\n);
scanf(%s, p); getchar();
for ( i=0; p[i]!= \0 && i < tam; i++ );
return(i);
}

int main() {
char pal[8];
int tamreal;

tamreal = ingreso(pal,8);
insertar(pal, tamreal);
printf(%s, pal);
return(0);
}

Ejecutar con el siguiente conjunto


de datos:
p,a,r,c,a,l,\n,
4, \n
i,\n

a)

insertar ingreso main


Arreglo p, Arreglo p Arreglo pal
tam, tam tamreal
posi, i
i,
letra
main ingreso insertar
i

l
tamrea
pal p p

letra
posi
tam

tam
i Pantalla
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
tamreal =
ingreso(pal,8);
printf(Ingre
se la
secuencia\n);
scanf(%s, p a r c a l \0 p a r c a l \0
p); getchar();
i=0 0
p[i]!= \0
&& i < tam; (V)
i++ 1
p[i]!= \0
&& i < tam; (V)
i++ 2
p[i]!= \0
&& i < tam; (V)
i++ 3
p[i]!= \0
&& i < tam; (V)
i++ 4
p[i]!= \0
&& i < tam; (V)
i++ 5
p[i]!= \0
&& i < tam; (V)
i++ 6
p[i]!= \0
&& i < tam; (F)
return(i);
tamreal = 6
ingreso(pal,8);
insertar(pal, p a r c a l \0 6
tamreal);
printf Ingrese
(Ingrese posicion
posicion\n);
scanf(%d, 4
&posi);
getchar();
printf Ingrese
(Ingrese letra
letra\n);
scanf(%c, i
&letra);
getchar();
i = tam+1; 7
i > posi (V)
p[i]=p[i-1]; \0
i-- 6
i > posi (V)
p[i]=p[i-1]; l
i-- 5
i > posi (V)
p[i]=p[i-1]; a
i-- 4
i > posi (F)
p[i]=letra; i
return(0); p a r c i a l l\0
printf(%s, parcial
pal);
Return(0);

Potrebbero piacerti anche