Fundamentos de Programación
Ing. Fausto Meneses
Primer Nivel
NRC 1747
Sigcha Mario
Valarezo Jessica
Ojeda Martin
Salas Alejandro
2014-07-07
7.-
Codigo
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
float desv(float ,float );
float media(float *,int );
void leer(float *,int);
void main()
{
float num[20];
int n;
clrscr();
do
{
printf("Ingrese el n£mero de t‚rminos entre <1 y 20>: ");
scanf("%d",&n);
}
while(!(n>0&&n<=20));
for(int i=0;i<n;i++)
leer(num+i,i);
printf("La media es : %.2fn",media(num,n));
for(int i=0;i<n;i++)
printf("%d) La desviaci¢n respecto a la media es:
%.2fn",i+1,desv(num[i],media(num,n)));
getch();
}
void leer(float *n,int i)
{
printf("%d) NUMERO = ",i+1);
scanf("%f",n);
}
float media(float *num,int tl)
{
int i;
float acu=0;
for(i=0;i<tl;i++)
acu+=num[i];
return acu/tl;
}
float desv(float num,float med)
{
return num-med;
}
Resultado
Prueba de Escritorio
8.-
Código
/*
Una pequeña aerolinea necesita un programa que asigne asientos en cada vez
lo del unico avion de la aerolinea.
*/
# include <stdio.h>
# include <conio.h>
int x[120][6],y[5][6];
void llenarfila(int x[120][6],int f,int cont)
{
int prod;
clrscr();
printf ("ASIENTOS FUMADORES %d nn dia: %d nn",f-(cont-1)*4,cont);
printf ("ASIENTOS NO FUMADORES");
do
{
printf ("Asientos?:");
scanf ("%d",&prod);
}
while (!(prod>=1 && prod <=5 && x[f-1][prod]==0));
do
{
printf ("Asientos disponibles %d: ",prod);
scanf ("%d",&x[f-1][prod]);
}
while (!(x[f-1][prod] >0 && x[f-1][prod]<100));
}
int suma (int i, int j)
{
int cont=0,ac=0;
do
{
ac+=x[i+cont*4][j];
cont++;
if (cont==30)
break;
}
while (1);
return ac;
}
void resumen()
{
int i,j,sumfilas, sumcolum;
for (i=0;i<4;i++)
{
sumfilas=0;
for (j=0;j<5;j++)
{
y[i][j]=suma(i,j+1);
sumfilas+=y[i][j];
}
y[i][5]=sumfilas;
}
for (i=0;i<5;i++)
{
sumcolum=0;
for (int j=0;j<4;j++)
sumcolum+=y[j][i];
y[4][i]+=sumcolum;
}
}
void imprimir(int y[5][6])
{
clrscr();
textcolor(14);
cprintf (" A S I E N T O Snr");
cprintf (" 1 2 3 4 5 TOT");
cprintf ("nrV nrEnrN 1nrD 2nrE 3nrD 4 nrO TnrR");
gotoxy(4,2);
int i,j;
for (i=0;i<5;i++)
{
gotoxy(6,i+5);
for (j=0;j<6;j++)
printf ("%5d",y[i][j]);
printf("n");
}
}
void main()
{
textcolor(7);
clrscr();
int f=1,cont=0;
char a;
do
{
llenarfila(x,4*cont+f,cont+1);
printf ("el vuelo sale en 3 horas [s-n]: ",f);
a=getche();
if (a=='n' || a=='N')
f++;
else
continue;
if (f==5)
{
cont++;
printf ("nDesea continuar [S-N]: ");
a=getche();
if (a=='n' || a=='N')
break;
else
f=1;
}
}
while(1);
resumen();
imprimir(y);
getch();
}
Resultado
Prueba de Escritorio
10.-
#include "stdio.h"
#include "conio.h"
#define TM 50
void main()
{
static int a[TM];
int n,p,i,j;
clrscr();
printf("tt ORDENA NUMEROSnn");
printf("t Entre # de elementos : ");
scanf("%d",&n);
for (i=0;i<n;i++) {
printf("t [%2d] : ",i+1);
scanf("%d",&a[i]);
}
printf("nt Los n£meros ordenados son.nn");
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (a[i] > a[j]) {
p = a[i];
a[i] = a[j];
a[j] = p;
}
for (i=0;i<n;i++)
printf("t [%2d] %10dn",i+1,a[i]);
getch();
}
Codigo
11.-
Codigo
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
void ordenar(int *,int );
void main()
{
int n;
int num[20];
clrscr();
puts ("(A) Orden Descendente ");
puts ("(B) Orden Ascendente");
do
{
printf("Ingrese el tama¤o del arreglo: ");
scanf("%d",&n);
}
while(!(n>0&&n<=20));
for(int i=0;i<n;i++)
{
printf("%d ) Elemento: ",i+1);
scanf("%d",num+i);
}
ordenar(num,n);
int i;
for(i=0;i<n;i++)
printf("n %d ) Elemento = %d",i+1,num[i]);
getch();
}
void ordenar(int *e,int tl )
{
int aux,i,j,k;
aux=e[0];
for(i=0;i<tl;i++)
{
aux=e[i];
k=i;
for(j=i;j<tl;j++)
if(e[j]>aux)
{ aux=e[j];
k=j;
}
e[k]=e[i];
e[i]=aux;
}
}
void main()
{
int n;
int num[20];
clrscr();
puts ("(A) Orden Descendente ");
puts ("(B) Orden Ascendente");
do
{
printf("Ingrese el tama¤o del arreglo: ");
scanf("%d",&n);
}
while(!(n>0&&n<=20));
for(int i=0;i<n;i++)
{
printf("%d ) Elemento: ",i+1);
scanf("%d",num+i);
}
ordenar(num,n);
int i;
for(i=0;i<n;i++)
printf("n %d ) Elemento = %d",i+1,num[i]);
getch();
}
void ordenar(int *e,int tl )
{
int aux,i,j,k;
aux=e[0];
for(i=0;i<tl;i++)
{
aux=e[i];
k=i;
for(j=i;j<tl;j++)
if(e[j]>aux)
{ aux=e[j];
k=j;
}
e[k]=e[i];
e[i]=aux;
}
}
Resultado
Prueba de Escritorio
14.-
Codigo
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<ctype.h>
const tf=20;
void frecuencia(int *,int *,int *,int ,int *);
void leer(int *,int);
void imprimir(int *,int);
void ordenar(int *,int);
void main()
{
int n[tf],tl,ta;
int fre[tf];
int ter[tf];
clrscr();
do
{
printf("Ingrese el n£mero de elementos: ");
scanf("%d",&tl);
}
while(!(tl>0&&tl<=tf));
printf("Ingrese los elementos del arreglo:n");
leer(n,tl);
ordenar(n,tl);
frecuencia(n,fre,ter,tl,&ta);
printf("nnELEMENTO FRECUENCIAn");
printf("________________________n");
for(int i=0;i<ta;i++)
{ if(fre[i])
printf("%6d %10dn",ter[i],fre[i]);
}
getch();
}
void leer(int *arr,int tl)
{
int i;
for(i=0;i<tl;i++)
{
printf("%d) Elemento: ",i+1);
scanf("%d",arr+i);
}
}
void imprimir(int *arr,int tl)
{
int i;
for(i=0;i<tl;i++)
printf("%d) Elemento: %dn",i+1,arr[i]);
}
void ordenar(int *e,int tl )
{
int aux,i,j;
for(i=0;i<tl;i++)
{
for(j=i+1;j<tl;j++)
if(e[i]>e[j])
{
aux=e[i];
e[i]=e[j];
e[j]=aux;
}
}
}
void frecuencia(int *n,int *f,int *t,int tl,int *ta)
{
int cont;
int i=0,j,k;
for(j=n[0],k=0;j<=n[tl-1];j++,k++)
{
cont=0;
for(i;n[i]==j;i++)
cont++;
t[k]=j;
f[k]=cont;
}
*ta=k;
}
Prueba de Escritorio
16.- Elaborar una función que reciba dos arrays a y b que contiene una frase
terminada en carácter ‘.’. La función debe devolver el número de veces que
se repite la palabra almacenada en el array b dentro del array a. considerar
que la palabra puede estar al inicio al final o separada con uno o varios
espacios en blanco.
#include "stdio.h"
#include "conio.h"
#include "string.h"
#define TM 80
voidcompara(char a[], char b[])
{
char *p;
int n=0;
p = strtok(a," ");
if (!strcmpi(p,b)) n++;
while (( p = strtok(NULL," ")))
if (!strcmpi(p,b)) n++;
printf("La palabra (%s) se repite %d veces.n",b,n);
}
void main()
{
static char a[TM],b[TM],ch,*h;
inti,j;
clrscr();
printf("Ingresefrase 1 : ");
printf("Ingresefrase 2: ");
while ((ch=getche()) != '.') {
*h = ch;
strcat(a,h);
}
17.- La media de una secuencia de números de punto flotante, xi, donde i = 1,
2,…, m se define como:
X = (x1 + x2 +… + xm)/m
La desviación respecto a la media es:
d1 = (xi – x), i = 1, 2,…, m
Y la desviación estándar es:
S = √
𝒅𝟏 𝟐+𝒅𝟐 𝟐+⋯+𝒅𝒎 𝟐
𝒎
Realizar un programa que lea k secuencias diferentes de números de punto
flotante, para calcular en cada secuencia la media, la desviación estándar, el
máximo y el mínimo algebraico. Además calcular la media global, la
desviación estándar global, el máximo y el mínimo global indicando la
secuencia a la que pertenece.
#include <conio.h>
#include <stdio.h>
main(){
floatnum,i,suma=0,cantidad vector;
clrscr();
printf("De cuantos numeros quiere calcular el promedio: ");
scanf("%f",&num);for(i=1;i<=num;i++)
{
printf("Numero: ");
scanf("%d",&cantidad);
suma=suma+cantidad;
}
suma=suma/num;
printf("Su promedio es: %d",suma);
}
i=0;
while(i<n){
suma=suma+vector[i];
i++;
}
promedio=suma/n;
i=0;
while(i<n){
sigma=sigma+((vector[i]-promedio)*(vector[i]-promedio));
i++;
}
desv_standar=sqrt(sigma/(n-1));
printf("La desviacionestandar es: %.2f",desv_standar);
break;
}
}
Resultado
Prueba de Escritorio

Deber de programación

  • 1.
    Fundamentos de Programación Ing.Fausto Meneses Primer Nivel NRC 1747 Sigcha Mario Valarezo Jessica Ojeda Martin Salas Alejandro 2014-07-07
  • 2.
    7.- Codigo #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> float desv(float ,float); float media(float *,int ); void leer(float *,int); void main() { float num[20]; int n; clrscr(); do { printf("Ingrese el n£mero de t‚rminos entre <1 y 20>: "); scanf("%d",&n); } while(!(n>0&&n<=20)); for(int i=0;i<n;i++) leer(num+i,i); printf("La media es : %.2fn",media(num,n)); for(int i=0;i<n;i++) printf("%d) La desviaci¢n respecto a la media es: %.2fn",i+1,desv(num[i],media(num,n))); getch(); } void leer(float *n,int i) { printf("%d) NUMERO = ",i+1); scanf("%f",n); } float media(float *num,int tl) { int i; float acu=0; for(i=0;i<tl;i++) acu+=num[i];
  • 3.
    return acu/tl; } float desv(floatnum,float med) { return num-med; } Resultado Prueba de Escritorio 8.- Código /* Una pequeña aerolinea necesita un programa que asigne asientos en cada vez lo del unico avion de la aerolinea. */ # include <stdio.h> # include <conio.h> int x[120][6],y[5][6];
  • 4.
    void llenarfila(int x[120][6],intf,int cont) { int prod; clrscr(); printf ("ASIENTOS FUMADORES %d nn dia: %d nn",f-(cont-1)*4,cont); printf ("ASIENTOS NO FUMADORES"); do { printf ("Asientos?:"); scanf ("%d",&prod); } while (!(prod>=1 && prod <=5 && x[f-1][prod]==0)); do { printf ("Asientos disponibles %d: ",prod); scanf ("%d",&x[f-1][prod]); } while (!(x[f-1][prod] >0 && x[f-1][prod]<100)); } int suma (int i, int j) { int cont=0,ac=0; do { ac+=x[i+cont*4][j]; cont++; if (cont==30) break; } while (1); return ac; } void resumen() { int i,j,sumfilas, sumcolum; for (i=0;i<4;i++) { sumfilas=0; for (j=0;j<5;j++) {
  • 5.
    y[i][j]=suma(i,j+1); sumfilas+=y[i][j]; } y[i][5]=sumfilas; } for (i=0;i<5;i++) { sumcolum=0; for (intj=0;j<4;j++) sumcolum+=y[j][i]; y[4][i]+=sumcolum; } } void imprimir(int y[5][6]) { clrscr(); textcolor(14); cprintf (" A S I E N T O Snr"); cprintf (" 1 2 3 4 5 TOT"); cprintf ("nrV nrEnrN 1nrD 2nrE 3nrD 4 nrO TnrR"); gotoxy(4,2); int i,j; for (i=0;i<5;i++) { gotoxy(6,i+5); for (j=0;j<6;j++) printf ("%5d",y[i][j]); printf("n"); } } void main() { textcolor(7); clrscr(); int f=1,cont=0; char a; do { llenarfila(x,4*cont+f,cont+1);
  • 6.
    printf ("el vuelosale en 3 horas [s-n]: ",f); a=getche(); if (a=='n' || a=='N') f++; else continue; if (f==5) { cont++; printf ("nDesea continuar [S-N]: "); a=getche(); if (a=='n' || a=='N') break; else f=1; } } while(1); resumen(); imprimir(y); getch(); } Resultado Prueba de Escritorio
  • 7.
    10.- #include "stdio.h" #include "conio.h" #defineTM 50 void main() { static int a[TM]; int n,p,i,j; clrscr(); printf("tt ORDENA NUMEROSnn"); printf("t Entre # de elementos : "); scanf("%d",&n); for (i=0;i<n;i++) { printf("t [%2d] : ",i+1); scanf("%d",&a[i]); } printf("nt Los n£meros ordenados son.nn"); for (i=0;i<n-1;i++) for (j=i+1;j<n;j++) if (a[i] > a[j]) { p = a[i]; a[i] = a[j]; a[j] = p; } for (i=0;i<n;i++) printf("t [%2d] %10dn",i+1,a[i]); getch(); } Codigo
  • 8.
  • 9.
    clrscr(); puts ("(A) OrdenDescendente "); puts ("(B) Orden Ascendente"); do { printf("Ingrese el tama¤o del arreglo: "); scanf("%d",&n); } while(!(n>0&&n<=20)); for(int i=0;i<n;i++) { printf("%d ) Elemento: ",i+1); scanf("%d",num+i); } ordenar(num,n); int i; for(i=0;i<n;i++) printf("n %d ) Elemento = %d",i+1,num[i]); getch(); } void ordenar(int *e,int tl ) { int aux,i,j,k; aux=e[0]; for(i=0;i<tl;i++) { aux=e[i]; k=i; for(j=i;j<tl;j++) if(e[j]>aux) { aux=e[j];
  • 10.
    k=j; } e[k]=e[i]; e[i]=aux; } } void main() { int n; intnum[20]; clrscr(); puts ("(A) Orden Descendente "); puts ("(B) Orden Ascendente"); do { printf("Ingrese el tama¤o del arreglo: "); scanf("%d",&n); } while(!(n>0&&n<=20)); for(int i=0;i<n;i++) { printf("%d ) Elemento: ",i+1); scanf("%d",num+i); } ordenar(num,n); int i; for(i=0;i<n;i++) printf("n %d ) Elemento = %d",i+1,num[i]); getch(); }
  • 11.
    void ordenar(int *e,inttl ) { int aux,i,j,k; aux=e[0]; for(i=0;i<tl;i++) { aux=e[i]; k=i; for(j=i;j<tl;j++) if(e[j]>aux) { aux=e[j]; k=j; } e[k]=e[i]; e[i]=aux; } } Resultado Prueba de Escritorio
  • 12.
    14.- Codigo #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> #include<ctype.h> const tf=20; void frecuencia(int*,int *,int *,int ,int *); void leer(int *,int); void imprimir(int *,int); void ordenar(int *,int); void main() { int n[tf],tl,ta; int fre[tf]; int ter[tf]; clrscr(); do { printf("Ingrese el n£mero de elementos: "); scanf("%d",&tl); } while(!(tl>0&&tl<=tf));
  • 13.
    printf("Ingrese los elementosdel arreglo:n"); leer(n,tl); ordenar(n,tl); frecuencia(n,fre,ter,tl,&ta); printf("nnELEMENTO FRECUENCIAn"); printf("________________________n"); for(int i=0;i<ta;i++) { if(fre[i]) printf("%6d %10dn",ter[i],fre[i]); } getch(); } void leer(int *arr,int tl) { int i; for(i=0;i<tl;i++) { printf("%d) Elemento: ",i+1); scanf("%d",arr+i); } } void imprimir(int *arr,int tl) { int i; for(i=0;i<tl;i++) printf("%d) Elemento: %dn",i+1,arr[i]); } void ordenar(int *e,int tl ) { int aux,i,j;
  • 14.
    for(i=0;i<tl;i++) { for(j=i+1;j<tl;j++) if(e[i]>e[j]) { aux=e[i]; e[i]=e[j]; e[j]=aux; } } } void frecuencia(int *n,int*f,int *t,int tl,int *ta) { int cont; int i=0,j,k; for(j=n[0],k=0;j<=n[tl-1];j++,k++) { cont=0; for(i;n[i]==j;i++) cont++; t[k]=j; f[k]=cont; } *ta=k; }
  • 15.
  • 16.
    16.- Elaborar unafunción que reciba dos arrays a y b que contiene una frase terminada en carácter ‘.’. La función debe devolver el número de veces que se repite la palabra almacenada en el array b dentro del array a. considerar que la palabra puede estar al inicio al final o separada con uno o varios espacios en blanco. #include "stdio.h" #include "conio.h" #include "string.h" #define TM 80 voidcompara(char a[], char b[]) { char *p; int n=0; p = strtok(a," "); if (!strcmpi(p,b)) n++; while (( p = strtok(NULL," "))) if (!strcmpi(p,b)) n++; printf("La palabra (%s) se repite %d veces.n",b,n); } void main() { static char a[TM],b[TM],ch,*h; inti,j; clrscr(); printf("Ingresefrase 1 : "); printf("Ingresefrase 2: "); while ((ch=getche()) != '.') { *h = ch; strcat(a,h); }
  • 17.
    17.- La mediade una secuencia de números de punto flotante, xi, donde i = 1, 2,…, m se define como: X = (x1 + x2 +… + xm)/m La desviación respecto a la media es: d1 = (xi – x), i = 1, 2,…, m Y la desviación estándar es: S = √ 𝒅𝟏 𝟐+𝒅𝟐 𝟐+⋯+𝒅𝒎 𝟐 𝒎 Realizar un programa que lea k secuencias diferentes de números de punto flotante, para calcular en cada secuencia la media, la desviación estándar, el máximo y el mínimo algebraico. Además calcular la media global, la desviación estándar global, el máximo y el mínimo global indicando la secuencia a la que pertenece. #include <conio.h> #include <stdio.h> main(){ floatnum,i,suma=0,cantidad vector; clrscr(); printf("De cuantos numeros quiere calcular el promedio: "); scanf("%f",&num);for(i=1;i<=num;i++) { printf("Numero: "); scanf("%d",&cantidad); suma=suma+cantidad; } suma=suma/num; printf("Su promedio es: %d",suma); } i=0; while(i<n){ suma=suma+vector[i]; i++; } promedio=suma/n;
  • 18.