Vous êtes sur la page 1sur 10

UNIVERSIDAD MAYOR DE SAN ANDRES

FACULTAD DE INGENIERIA
C A R R E R A D E I N G E N I E R I A E L E C T R O N I C A

ETN 307-PROGRAMACIÓN
DOCENTE: LIC. ZOTA

GRUPO: “A”

HORARIO:
Practica N°1
► MARTES 10:00-12:00
MIÉRCOLES 08:00-10:00
PROGRAMACIÓN

ESTUDIANTE: ZEGARRA COPA TITO OSCAR

Trabajo Practico de programación

Fecha de presentación:
Martes, 20 de mayo de 2014
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE INGENIERIA
Carrera de ingeniería Electrónica

16087
Código del problema: PARTS

Una composición de un número n es una secuencia ordenada de números


que suman n, por ejemplo para n = 4 tenemos 8 composiciones:
4=4
4=3+1
4=2+2
4=2+1+1
4=1+3
4=1+2+1
4=1+1+2
4=1+1+1+1
Una parte de una composición es uno de los sumandos de la composición,
para n = 4, el total de partes en todas sus composiciones es 20. Dado un
entero n (1 ≤ 𝑛 ≤ 109) calcule el número de partes módulo 109 + 7.

Input
La entrada inicia con un entero T (𝑇 ≤ 40)
Siguen T líneas cada una con un entero n (1 ≤ 𝑛 ≤ 109)

Output
Una línea con la respuesta por cada caso.

Ejemplo:

Entrada: Salida:
4 1
1 3
2 8
3 20
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE INGENIERIA
Carrera de ingeniería Electrónica

Flujograma: Problema N° 1

INICIO nparts(x)

Ingrese T: i=1;i<T;i++

T s=s+(fact(x-1)/(fact(x-1-
i)*fact(i)))*(i+1);
m=1;m≤T;m++
i

Ingrese n[m]:
s

n[m]

fact(y)
n[i] parts

m=1;m≤T;m++ l=1;l≤T;l++

fac=fac*1
nparts(n[m])

l
n[m] a

fac
m

FIN
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE INGENIERIA
Carrera de ingeniería Electrónica

Programa: Problema N° 1
#include<stdio.h>
long int fact(int);
long int nparts(long int);
main()
{
int T,m;
int a,n[81];
printf("Ingrese T: ");
scanf("%d",&T);
for(m=1;m<=T;m++)
{printf("ingrese n[%d]=",m);
scanf("%d",&n[m]);}
printf("\nn[i]\tparts\n");
for(m=1;m<=T;m++)
{a=nparts(n[m]);
printf("\n%ld\t%d\n",n[m],a); }
main();
}
long int nparts(long int x)
{
int i;
long int s;
s=0;
for(i=0;i<x;i++)
{s=s+(fact(x-1)/(fact(x-1-i)*fact(i)))*(i+1) }
return (s);
}

long int fact(int y)


{int l;
long int fac;
fac=1;
for(l=1;l<=y;l++)
{fac*=l; }
return (fac);
}
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE INGENIERIA
Carrera de ingeniería Electrónica

404A
Código del problema: Valera and X
Valera es un niño pequeño. Ayer le dieron una enorme hometask
matemáticas en la escuela, por lo que Valera no tuvo tiempo suficiente para
aprender correctamente el alfabeto Inglés para su lección de inglés. Por
desgracia, el profesor de inglés decidió tener una prueba en alfabeto hoy. En
la prueba de Valera consiguió un pedazo cuadrado de papel
cuadriculado. La longitud del lado es igual a n cuadrados (n es un número
impar) y cada cuadrado de la unidad contiene una pequeña letra del
alfabeto Inglés.

Valera tiene que saber si las letras escritas en la pieza cuadrada de forma
impresa letra " X”. El maestro de Valera cree que las letras en la hoja de papel
en forma de " X ", si:

► En ambas diagonales del cuadrado de papel todas las letras son las
mismas;
► Todas las demás plazas de la de papel (que no están en las diagonales)
contienen la misma letra que es diferente de las letras en las
diagonales.

Ayuda Valera, escribir el programa que completa la tarea descrita por él.

Entrada

La primera línea contiene entero n (3 ≤  n  <300; n es impar). Cada uno de los


siguientes n líneas contiene n pequeñas letras inglesas - La descripción del
papel de Valera.

Salida

Cadena de impresión " SI ", si las letras en la carta modelo de papel" X”. De lo
contrario, la cadena de impresión " NO”. Imprima las cadenas sin comillas.
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE INGENIERIA
C A R R E R A D E I N G E N I E R I A E L E C T R O N I C A

Input: 5 Input: 3 Input:3


xooox wsw xpx
oxoxo sws pxp
soxoo wsw xpe
oxoxo Output:YES Output:NO
xooox
Output:NO

Flujograma: Problema N° 2

INICIO

Ingrese la dimensión de la matriz cuadrada nxn 3<=n<=300 leerM(m,mat[300][300])


según las condiciones del problema n debe ser impar n=

i=0;i<m;i++

Leerdim()
j=0;j<m;j++

Introduzca los elementos de la matriz


T[i][j]

leerM(a,t)
mat[i][j]

Los elementos de la matriz son


j

mostrarM(a,t);
i

FIN
FIN
UNIVERSIDAD MAYOR DE SAN ANDRES
leerM(m,mat2[300][300])
FACULTAD DE INGENIERIA
Carrera de ingeniería Electrónica
i=0;i<m;i++

j=0;j<m;j++

mat2[i][j]

x=0;y=0;z=0

i=0;i<m;i++

mat2[i][i]==mat2[0][0]
leerdim

X++;
n

mat2[i][m-i-1]==mat2[0][0]
n≤2

Z++;
E R R O R !!! Debe introducir
un numero entero mayor a
j 3.Intente de nuevo...

i=0;i<m;i++

n≥300
j=0;j<m;j++

(n<3||n>300)

mat2[i][j]==mat2[0][1] E R R O R !!! Debe introducir


un numero entero menor a
300.Intente de nuevo...

FIN
y++;

Z=z-1

x+y+z==m*
m
NO SI

FIN
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE INGENIERIA
Carrera de ingeniería Electrónica

Programa: Problema N° 2
#include<stdio.h>
#include<conio.h>
#define MAX 300

int leerdim(void);
void leerM(int m,char mat[MAX][MAX]);
void mostrarM(int m, char mat2[MAX][MAX]);

main()
{
char t[MAX][MAX];
int a,i,j;//a=Dimension de la matriz

printf("Ingrese la dimension de la matriz cuadrada nxn 3<=n<=300\n");


printf("segun las condiciones del problema n debe ser impar\nn=");
a=leerdim();//a=Dimension de la matriz
printf("Introduzca los elementos de la matriz");
leerM(a,t);
printf("\n\nLos elementos de la matriz son:\n");
mostrarM(a,t);
printf("\n\n");
getch();
}

int leerdim(void)
{
int n;

do
{
scanf("%d",&n);
if(n<=2)
{
printf("\n\n E R R O R !!!");
printf("\n\n Debe introducir un numero entero mayor a 3");
printf("\n\n Intente de nuevo...");
}
else
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE INGENIERIA
Carrera de ingeniería Electrónica

{
if(n>MAX)
{
printf("\n\n E R R O R!!!");
printf("\n\n Debe introducir un numero entero menor que
%d", MAX);
printf("\n\n Intente de nuevo...");
}
}
}
while(n<3||n>MAX);

return n;
}

void leerM(int m, char mat[MAX][MAX])


{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
printf("\nT[%d][%d]=",i,j);
scanf("%1s",&mat[i][j]);
}
}
}

void mostrarM(int m, char mat2[MAX][MAX])


{
int i,j,x,y,z;
for (i=0;i<m;i=i+1)
{
for (j=0;j<m;j++)
{
printf ("%1c",mat2[i][j]);
}
printf("\n");
}
x=0;y=0;z=0;
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE INGENIERIA
Carrera de ingeniería Electrónica

for(i=0;i<m;i++)
{
if(mat2[i][i]==mat2[0][0])
{
x++;
}

if(mat2[i][m-i-1]==mat2[0][0])
{
z++;
}
}

for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(mat2[i][j]==mat2[0][1])
y++;
}
}
z=z-1;
if(x+y+z==m*m)
printf("\nSI\n");
else
printf("\nNO\n");
}

Vous aimerez peut-être aussi