Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FUNDAMENTOS DE PROGRAMACIÓN
VER
https://www.slideshare.net/JerryRamone/arreglos-en-pseint
OBJETIVOS:
● Realizar programas utilizando arreglos, tomando en consideración sentencias de control,
iteración y funciones de usuario.
Se puede utilizar al manipular los registros que tienen una dirección y donde guarda un
valor y se puede utilizar para realizar operaciones con vectores y matrices.
Ejemplo:
long V[5];
Sintaxis o estructura de declaración de Arreglos Bidimensionales
Ejemplo:
float A[3][3];
//PROTOTIPO DE FUNCIÓN
//EN PRINCIPAL
printf("\nMATRIZ A ");
leer (A,LIM); //LLAMADA DE FUNCIÓN
//DEFINICION DE FUNCION
DESARROLLO DE LA PRÁCTICA
Ej. 1
2
printf(“ A[%d][%d] = %f ”,i,j, A[i][j]);//0,1
Ej. 2
CORREGIR EN SU CASO.
FLOAT n[5]={13,14,15,1,2};
int i=0,J=25;
lim=5;
while (i=i+1<n); //corregir en su caso corrija es con j y n es un arreglo y tiene error.
{
printf(“A [%d]=%f”,J,A[i]);
i=i+1;
}
Ej. 3
int A[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for (i=0;i<n;i++ )
for(j=0;j<n;j++)
printf(“A [%d][%d]=%f\n”,i,j,A[i][J]);
printf(“\n\n” );
3
// otra forma
for (i=0;i<n;i++ )
{for(j=0;j<n;j++)
printf(“A [%d][%d]=%f\t”,i,j,A[i][J]);
printf(“\n”);
}
printf(“\n\n” );
A[0][0]=1 2 3
4 5 6
7 8 9
// otra forma
for (i=0;i<n;i++ )
{for(j=0;j<n;j++)
printf(“%f\t” A[i][J]);
printf(“\n”);
}
1 2 3
4 5 6
7 8 9
4
Ej. 4
Modifique el ejercicio anterior para los 3 casos utilizando ciclo while, corrija en su
caso.
Recordar que para los ciclos de repetición por control por contador debemos considerar:
inicialización del contador, condición para el control del ciclo de repetición, incremento
del contador.
Ayuda:
int A[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i=0; INT J=0;
//verifique la inicializacion del contador i
while(i<n)//corregir en su caso
{
While (j<n)
{
printf(“A [%d][%d]=%f”,I,J,A[i][J]);
j=j+2;
}
i=J+1; //verifique y corrija sus subindices ponga printf para revisar
I=0;
}
Ej. 5
Caracteres
Int i=0
caso 1
char pais [ ]=”Mexico”;
caso 2
Mexico son 6 caracteres y el carácter nulo ´\0’ por lo que son 7 bytes.
Ej.6
//corrija en su caso
Char A[20];
leer mexico (cadena %s es una cadena de caracteres que en este caso es mexico)
imprimir el arreglo A
leer estado de mexico // cuando hay un espacio lo identifica como un valor nulo y solo
guarda estado como la cadena
imprimir el arreglo
leer estado_de_mexico
imprimir el arreglo A
limpiar buffer entre cada uno de las instrucciones de lectura no es necesario solo con
ciclos utilizando caracteres
con fflush(stdin);
comente:
Ej 6.1
Repita el mismo ejercicio pero ahora omita en el operador & esto se debe a que son
arreglos porque se convierte a puntero y la dirección queda en el primer elemento.
6
Scanf(“%s”,A);
Printf(“cadena string=%s,A);
Ej 6.2
char A[ ]={’M’,’e’,’x’,’i’,c’,’o’,’\0’};
Ej 7
1. #include <stdio.h>
2. #include <string.h>
3. #include <ctype.h>
4.
5. int
6. main( void )
7. {
8. char m[] = "Raul Martinez Perez Soleil";
9. int i, espacios1 = 0, espacios2 = 0;
10.
11. for ( i = 0; i < strlen( m ); ++i ) //strelen longitud de la cadena
12. {
13. if ( m[i] == 32 ) ++espacios1; // 32 = valor decimal del espacio (ascii)
14. if ( isspace( m[i] ) ) ++espacios2; /*isspace checa si hay un caracter en
blanco*/
15. }
16.
17. printf( "cadena:%s - espacios1: %d - espacios2:%d \n", m, espacios1, espacios2
);
7
Ej 7.1
INVESTIGAR
Realice, corrija y complemente en su caso como parar un proceso de lectura utilizando
el nulo espacio en blanco ver isspace
Char arreglo[10];
Char
n=10
cont=0;
While ( cont<n)
{ printf dame un caracter
Scanf(“%d”,& arreglo[cont]);//comente que hace, para leer require?
if (arreglo[cont]==32)
break;
Cont=cont+1; //utilice en caso necesario
printf(Cont);//utilice en caso necesario
}
prinff(“%s”,arreglo);
EJ 8
Ver el siguiente video realizar el diagrama de flujo y lenguaje C (funciones de usuario)
https://www.youtube.com/watch?v=zyUebxG1Weg
Prototipo de la función
void Fleer(int Aux[5 ], int tam);
Invocación
Fleer(A,lim); // es el arreglo y el tamaño
Fimpresion(A,lim);
Definición de la función
8
void Fleer(int Aux[5 ], int tam) //definicion de la funcion
{
for(int i=0; i<tam;i++)
{
printf(.....dame elemento[%d]=?”,i+1);
scanf(“”,&Aux[i]);
}
}
int n=5:
secuencia en principal
Fimprimir(A,n) //invocacion
Fmodifica(A,n)
Fleer(A,n)
Fimprimir(A.n)
Ej 8.1
Realice un programa que lea e imprima matrices de dos dimensiones utilizando pasó
arreglo de funciones, de acuerdo a las siguientes líneas de instrucción de mayor de 2x2
hasta 10x10, si fuera de 3x3 leerá 9 valores numéricos en total.
VER
https://www.slideshare.net/JerryRamone/arreglos-en-pseint
solo que debe ser localidad de memoria de los arreglos en 1 vs 0
9
10
Ej 9
Realice un programa que lea e imprima matrices de hasta límite de n=10 elementos de
2 dimensiones de nxn utilizando pasó arreglo de funciones de acuerdo a las siguientes
líneas de instrucción.
printf(“......
leer A,n
imprimir A,n
leer B
imprimir B
suma (A,B, S1, n)
printf el resultado de la suma de A y B es:
imprimir (S1)
leer C
imprimir C
leer D
imprimir D
printf el resultado de la suma de A y B es:
suma (C,D, S2, n)
imprimir (S2)
printf el resultado de la suma de S1 y S2 es:
suma (S1,S2, S3,n)
11
imprimir (S3, n)
Ej 9.1
Se define con tener en la diagonal unos y sus demás elementos iguales a cero
EJ 10
Leer matriz A
Imprimir matriz A
Leer matriz B
12
Imprimir matriz B
Realizar la multiplicación de A*B y asignar los valores a matriz M
Imprimir matriz M
Hacer también a mano el código en lenguaje C y el diagrama de flujo.
Ej.11
Leer(A,n);
Imprimir(A,n);
Transpuesta(A,At,n);
Imprimir(At,n);
Ej. 12
13
EJ 13 visto el 2 / 12 /2019
Separe las sumas por funcion con valor de retorno, con valor por referencia y por
arreglos
14
15
EJERCICIO 3 /12 /2019
16
17
18
EJERCICIOS PROPUESTOS PARA EVALUACIÓN
leer (A,n)
printf(matriz A);
imprimir (A,n)
19
nula (A,n)
printf(matriz NULA DE A ES);
imprimir A
leer A
printf(matriz A);
imprimir A
leer B
printf(matriz A);
imprimir B
leer C
imprimir C
nula A
imprimir A
transpuesta (B,BT,
printf( transpuesta de matriz B es BT);
identidad (B)
printf
suma (B,C,A)
printf(la suma de B y C es )
multiplicacion(A,B,C)
printf(AxB=C);
imprimir C
printf(diferente de BxA=);
multiplicacion(B,A,C)
imprimir (C)
20
Cálculo del equivalente de la suma de resistencias paralelo argumento de entrada
arreglo, regrese valor por referencia de suma equivalente con arreglo (paso
arreglo de funciones)
Ej 3.- Realice una función de lectura para guardar en un arreglo los primeros 10
elementos de la siguiente serie de Taylor
Ej 4.- Calcule el mayor de una lista de n números (máximo una n de 100 donde el
usuario elija ) con función de usuario argumento de entrada lista de n. Asigne el valor de
la casilla en otro arreglo para regresar el valor a principal por referencia es decir pasó
arreglo de funciones.
Ej 5.- En una función de usuario calcule el mayor y el menor de una lista de n números
(máximo n de 100 donde el usuario elija si quiere una lista menor) con función de
usuario argumento de entrada lista de n, y el límite menor de n, arreglo de resultados
con 2 elementos en uno guardará localidad del arreglo del numero mayor y en la otra
guardará la del número menor. en principal imprimirá el valor del número mayor y el
orden de la lista e imprimirá el menor y el orden de este número.
Ej 6.- Se tienen las ventas de 12 meses registradas y se quieren conocer las ventas
acumuladas al final del año y posteriormente reportar cual es mes que tiene las venta
máxima y cuál la venta mínima.
En feb mar Abril Mayo Junio Julio Ago Sep Oct Nov Dic
$200.00 $300.00 $400.00 $500.00 $600.00 $350.00 $280.00 $225.00 $380.00 $270.00 $480.00 $720-
00
Ej 7.- Se registran las ventas en una papelería de los siguientes productos durante una
semana:
120 Libretas cuadriculadas forma italiana costo $35 c/u precio neto
300 Plumones para pizarrón costo $18 c/u precio neto
250 plumones indelebles costo $24.00c/u precio neto
150 lápices costo $8.00 c/u precio neto
100 Gomas blancas costo $3.00 c/u precio neto
En un arreglo capturar la cantidad, en otro arreglo los precios netos (incluye iva).
Calcular el precio neto antes del iva de cada uno de los productos y asignarlo a un
arreglo, en otro arreglo indicar el iva de cada uno de los productos.
21
Al final Indicar las ventas totales antes del iva, el iva y la venta total neta.
//PROTOTIPO DE FUNCION
//EN PRINCIPAL
printf("\nMATRIZ A ");
leer (A,LIM); //LLAMADA DE FUNCION
solo
#include <stdio.h>
#include <stdlib.h>
main()
{ int i,j,lim,n;
float A[10][10]={0};//se inicializan con 0
float B[10][10]={0};
float B1[][3]={{1,2,3},{4,5,6},{7,8,9}};// el [3] se puede omitir
// el arreglo B indica que es de 3x3
float C[10][10]={0};
printf("dame el tamaño del arreglo\n");
printf("dame el tamaño del arreglo no mayor que 10\n");
scanf("%d",&n);
if (n<=10&&n>=1)
{printf("fase lectura del arreglo A");
for(i=0; i<n; i++)
for (j=0; j<n ;j++)
{
printf("Dame elem [%d][%d]\n",i+1,j+1);
scanf("%f",&A[i][j]);
}
printf("Datos de arreglo A\n");
fimprimir(A,n);
printf("lectura con paso arreglo de funciones\n");
printf("lectura de Arreglo B");
fleer(B,n);
printf("lectura de Arreglo C");
24
fleer(C,n);
printf("Datos de arreglo B\n");
fimprimir(B,n);
printf("Datos de arreglo C\n");
fimprimir(C,n);
system ("pause");
return (0);
}//fin del principal
25
{
int i,j;
for(i=0; i<n1; i++)
for (j=0; j<n1 ;j++)
{
SUMA[i][j]=S1[i][j]+S2[i][j];//completar por fa please
}
}
EJERCICIO 6 12 2019
26
27
EJERCICIO 9 12 2019
void Ffibonacci(int);
}
Fibonacci(int n)
{ a=0;b=1
if n==1
printf( ,a);
if n==2
printf( ,a);
printf( ,b);
for(i=1;i<=n;i++)
{
if i==1
printf( ,a);
if i==2
printf( ,b);
if i>2
c=a+b
printf( ,c);
28
a=b;
b=c;
}
}
2. Realizar programa de fibonacci para que en una funcion guarde en un arreglo los n
elementos de fibonacci y otra funcion para imprimirlos
29
30
ASESORIA 10 12 2019
31
HACER FUNCION DE USUARIO QUE REALICE LO ANTERIOR
ARGUMENTO DE ENTRADA N Y QUE IMPRIMA EN LA FUNCION
REALIZADA
32
33
HACER FUNCION DE USUARIO QUE REALICE LO ANTERIOR
ARGUMENTO DE ENTRADA N y UN ARREGLO QUE GUARDARA LOS
FACTORIALES HASTA N Y QUE IMPRIMA EN OTRA FUNCION LOS
FACTORIALES HASTA N
34
35
36