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
►
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
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);
}
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
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
Flujograma: Problema N° 2
INICIO
i=0;i<m;i++
Leerdim()
j=0;j<m;j++
leerM(a,t)
mat[i][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)
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
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;
}
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");
}