SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Es programa puede ser dividido en varias secciones
1. Revise el siguiente
programa y explique cuál es
el resultado.
#include <stdio.h>
#define FILAS 3
#define COLUMNAS 4
int main ( )
{
int i,j;
int M[FILAS][COLUMNAS];
/* lectura por filas */
for ( i=0; i<FILAS; i++)
for ( j=0; j< COLUMNAS; j++)
scanf(“%d”, &M[i][j]);
/* escribe por columnas */
for ( j=0; j<COLUMNAS; j++)
{
for ( i=0; i< FILAS; i++)
printf(“%5d”,M[i][j]);
printf(“n”);
}
}
Declaraciones inicialesLectura de datos en el arreglo MEscritura de los datos del arreglo MFin del programa
Incluye librería estándar de entrada y salida.
Define dos constantes simbólicas:
•FILAS con valor 3 y
•COLUMNAS con valor 4
Observe que no requiere el signo igual como operador
para la asignación.
Declara la función mainDeclara las variables enteras i y j
Observemos primero la sección
con las declaraciones iniciales
#include <stdio.h>
#define FILAS 3
#define COLUMNAS 4
int main ( )
{
int i,j;
int M[FILAS][COLUMNAS];
Declara el arreglo M de elementos
enteros con dimensiones M[3][4]
Hagámosle un seguimiento a
esta sección del programa
Note que la lectura de datos para el arreglo
M[ i ] [ j ] se realiza por FILAS, donde:
• se mantiene fijo el valor de la FILA i mientras
que
• el valor de la COLUMNA j varía de 0 a 3.
Los índices i y j de M[ i ] [ j ] varían de acuerdo a
las instrucciones for, indicando con cuál valor del
arreglo M se está trabajando en ese momento.
Veamos ahora la sección que efectúa
la lectura de datos por filas en el
arreglo M
/* lectura por filas */
for ( i=0; i < FILAS; i++)
for ( j=0; j < COLUMNAS; j++)
scanf(“%d”, &M[i][j]);
M[0][0] M[0][1] M[0][2] M[0][3]
M[1][0] M[1][1] M[1][2] M[1][3]
M[2][0] M[2][1] M[2][2] M[2][3]
M =
i =
j =
012
0123
FILA
COLUMNA 01230123
Vamos primero paso a pasoVeamos ahora un elemento a la vezFinalmente veamos una fila completa
Hasta aquí hemos leído los datos y los hemos
almacenado en el arreglo M
/* escribe por columnas */
for ( j=0; j < COLUMNAS; j++)
{
for ( i=0; i < FILAS; i++)
printf(“%5d”,M[i][j]);
printf(“n”);
}
• En la sección previa el arreglo M [ i ] [ j ]
fue recorrido por FILAS, es decir
horizontalmente.
• Aquí el arreglo M [ i ] [ j ] es recorrido
por COLUMNAS, es decir verticalmente.
Observe que el programador utilizó aquí los
índices i y j en un orden inverso al que
usó para leer los datos:
•Aquí la j está primero que la i.
012012012
Examinemos ahora la sección que
imprime los datos almacenados en
el arreglo M
M[0][0] M[0][1] M[0][2] M[0][3]
M[1][0] M[1][1] M[1][2] M[1][3]
M[2][0] M[2][1] M[2][2] M[2][3]
M =
i =
012
0FILA
COLUMNA
12
3j =
/* escribe por columnas */
for ( j=0; j < COLUMNAS; j++)
{
for ( i=0; i < FILAS; i++)
printf(“%5d”,M[i][j]);
printf(“n”);
}
Procedamos ahora a observar el orden
en que los datos son impresos
M[0][0]
M[0][1]
M[0][2]
M[0][3]
M[1][0]
M[1][1]
M[1][2]
M[1][3]
M[2][0]
M[2][1]
M[2][2]
M[2][3]
“n” es Salto de línea
“n” es Salto de línea
“n” es Salto de línea
“n” es Salto de línea
La matriz que fue introducida con
• 3 filas y 4 columnas, aparece impresa como de
• 4 filas y 3 columnas.
2. Escriba un programa que
inicializa un arreglo de
enteros con diez valores y lo
imprime en formato de tabla.
//Inicialización de un arreglo
#include <stdio.h>
int main()
{
Note que n se define como un arreglo de 10 enteros.
int i, n[ 10 ];
Coloca cero en cada uno de los elementos de n.Imprime el encabezado de la tabla.
printf("Elemento t Valor n" );
//imprime el arreglo
for ( i = 0; i < 10; i++ )
printf("%5d tt %3d n", i, n[i]);
Imprime la tabla.
return 0;
}
Termina el programa.
//Inicializa el arreglo
for ( i = 0; i < 10; i++ )
n[ i ] = 0;
Este programa imprime
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
Elemento Valor
3. Escriba un programa que
calcule y almacene el
cuadrado de los primeros
100 números positivos.
int main ( )
{
int cuadrado[101];
int i; /* indice del for */
for ( i=1; i<=100; i++){
cuadrado[i] = i*i;
}
for ( i=1; i<=100; i++)
printf(" El cuadrado de
%d es %d n",i, cuadrado[i]);
}
Declara un arreglo de 101 elementos, los cien
primeros números positivos son de 1 a 100
Calcula el cuadrado de 1 a 100, observe que no
asigna valor a n [ 0 ].
Imprime los valores de i y los valores del arreglo
desde cuadrado [ 1 ] hasta cuadrado [ 100 ].
Termina el programa
El cuadrado de 64 es 4096
El cuadrado de 65 es 4225
El cuadrado de 66 es 4356
El cuadrado de 67 es 4489
El cuadrado de 68 es 4624
El cuadrado de 69 es 4761
El cuadrado de 70 es 4900
El cuadrado de 71 es 5041
El cuadrado de 72 es 5184
El cuadrado de 73 es 5329
El cuadrado de 74 es 5476
El cuadrado de 75 es 5625
El cuadrado de 76 es 5776
El cuadrado de 77 es 5929
El cuadrado de 78 es 6084
El cuadrado de 79 es 6241
El cuadrado de 80 es 6400
El cuadrado de 81 es 6561
El cuadrado de 82 es 6724
El cuadrado de 83 es 6889
El cuadrado de 84 es 7056
El cuadrado de 85 es 7225
El cuadrado de 86 es 7396
El cuadrado de 87 es 7569
El cuadrado de 88 es 7744
El cuadrado de 89 es 7921
El cuadrado de 90 es 8100
El cuadrado de 91 es 8281
El cuadrado de 92 es 8464
El cuadrado de 93 es 8649
El cuadrado de 94 es 8836
El cuadrado de 95 es 9025
El cuadrado de 96 es 9216
El cuadrado de 97 es 9409
El cuadrado de 98 es 9604
El cuadrado de 99 es 9801
El cuadrado de 100 es 10000
Este programa imprime
4. Corra el siguiente programa
y explique lo que sucede
#include <stdio.h>
int main()
{
int c;
char nombre[4][7]={ 'F','u','l','a','n','o','0',
'J','u','a','n','0',' ',' ',
'P','e','d','r','o','0',' ',
'E','l','i','s','a','0',' '};
/* El caracter nulo, significa el fin de texto */
printf ("Esto es un mensaje
personalizado. nn")
for (c = 0; c < 4; c++){
printf("Hola %s nn",nombre[c]);
}
}
Declara el arreglo de caracteres ‘nombre’ y lo
inicializa
Imprime el título y los elementos que están en el
arreglo de caracteres „nombre’
Fin del programa
Este programa saluda a cada uno de los
nombres que están en el arreglo de
caracteres ‘nombre’ de 4x7. De la siguiente
manera:
4. SOLUCIÓN
Esto es un mensaje personalizado.
Hola Fulano salta dos líneas, escribe
Hola Juan salta 2 líneas, escribe
Hola Pedro salta 2 líneas, escribe
Hola Elisa y salta 2 líneas.
5 Escriba un programa que dada una cadena de
caracteres fija, imprima la cadena completa,
imprima el tercer carácter de la cadena y la
subcadena a partir del cuarto carácter.
Se define un arreglo de 7 caracteres: cadena [7]y se asigna una letra a cada elemento del arreglo.Imprime toda la cadena de caracteres, con %s.
cadena[0]='L';
cadena[1]='e';
cadena[2]='t';
cadena[3]='r';
cadena[4]='a';
cadena[5]='s';
cadena[6]= '0'; /* Caracter nulo, significa
el fin del texto */
printf("La cadena es: %sn", cadena);
#include <stdio.h>
int main()
{
char cadena[7];
// Define una cadena de caracteres
printf("La subcadena a partir del cuarto
caracter es: %sn", &cadena[3]);
printf("El tercer caracter de la
cadena es: %cn", cadena[2]);
}
Imprime el tercer carácter con %c y cadena[2].Imprime a partir del cuarto elemento, con %s.Fin del programa.
Este programa imprime
La cadena es: Letras
El tercer caracter de la cadena es: t
La subcadena a partir del cuarto caracter es: ras
6. El siguiente programa ordena los valores dados
de un arreglo de diez elementos en orden ascendente.
Analice el programa e indique:
¿ cuál será la salida del programa?
#include<stdio.h>
int main()
{
const int dimensionArreglo = 10;
int a[ dimensionArreglo ] = { 2, 6, 4, 8, 10, 12, 89, 68,
45, 37 };
int i, temp;
printf("nDatos en orden originaln");
for ( i = 0; i < dimensionArreglo; i++ )
printf("%4d",a[ i ]);
for ( int pass = 0; pass < dimensionArreglo - 1; pass++ )
//pases
for ( i = 0; i < dimensionArreglo - 1; i++ ) // un pase
if ( a[ i ] > a[ i + 1]) { // una comparación
temp = a [ i ]; // un intercambio
a[ i ] = a[ i + 1 ];
a[ i + 1 ] = temp;
}
printf("nDatos en orden ascendenten");
for ( i = 0; i < dimensionArreglo; i++ )
printf("%4d",a[ i ]);
printf("n");
}
Declara el arreglo ‘a’ con dimensión 10 y lo inicializaImprime el arreglo ‘a’ en el orden originalOrdena los valores del arreglo ‘a’ utilizando la variable ‘temp’Imprime los valores del arreglo ‘a’ en orden ascendenteFin del programa
6. SOLUCIÓN:
La técnica utilizada es similar al ordenamiento de
burbuja (Bubble sort), pues los valores más
pequeños gradualmente “burbujean” hacia la parte
más alta del arreglo como las burbujas de aire
ascienden en el agua, mientras que los valores más
grandes se hunden al fondo del arreglo.
La técnica consiste en pasar varias veces por el
arreglo.
Con cada paso, se comparan pares
sucesivos de elementos.
Si uno de los pares está en orden
ascendente ( o son idénticos los valores) se queda
tal cual.
Si está en orden descendente se
intercambian sus valores en el arreglo.
La salida de este programa es:
2 6 4 8 10 12 89 68 45 37
2 4 6 8 10 12 37 45 68 89
Datos en orden original
Datos en orden ascendente
7. Escriba un programa que llene una matriz
de 3 X 3 de valores reales, luego:
Calcule la suma de cada fila y la
almacena en un vector
Calcule la suma de cada columna y
la almacena en otro vector.
Matriz: arreglo de elementos reales con
dimensión 3x3
Sum_fila: vector de 3 elementos reales
Sum_fila: contiene la suma de cada fila
Sum_colum: vector de 3 elementos reales
Sum_colum: contiene la suma de cada columna.
Para este programa se definen los
siguientes elementos de datos:
#include <stdio.h>
#define N 3
int main ( )
{
float matriz[N][N]; // Entrada
float sum_fila[N], sum_colum[N]; // Salida
int i,j;
for (i=0; i<N; i++){
sum_fila[i]= 0.0;
sum_colum[i]= 0.0;
}
/* Lee los datos para la matriz */
printf("Introduzca los %d elementos de la matriz por
filan", N*N);
for ( i=0; i<N; i++)
for (j=0; j<N; j++)
scanf("%f", &matriz[i][j]);
/* Suma las filas */
for ( i=0; i<N; i++)
for (j=0; j<N; j++)
sum_fila[i] = sum_fila[i]+matriz[i][j] ;
/* Suma las columnas */
for ( j=0; j<N; j++)
for (i=0; i<N; i++)
sum_colum[j] = sum_colum[j] + matriz[i][j] ;
/* Imprime las sumas de cada fila y cada columna */
for (i=0; i<N; i++)
printf("La suma de la fila %d es: %5.2f y la
suma de la columna %d es: %5.2f n",
i,sum_fila[i],i, sum_colum[i]);
}
Definiciones iniciales y declaración de variablesInicializa los arreglos sum_fila y sum_colum a ceroLee los datos y los almacena en el arreglo matrizRecorre cada fila y almacena la suma en sum_filaRecorre cada columna y almacena la suma en sum_columnImprime la suma de cada fila y de cada columnaFin de programa
Interacción con el programa
1
2
3
4
5
6
7
8
9
Primero el programa solicita al usuario los datos para llenar
la matriz, para ello hemos introducido unos datos de prueba,
y luego se muestran los resultados para esos datos:
La suma de la fila 0 es: 6.00 y la suma de la columna 0 es: 12.00
La suma de la fila 1 es: 15.00 y la suma de la columna 1 es: 15.00
La suma de la fila 2 es: 24.00 y la suma de la columna 2 es: 18.00
Introduzca los 9 elementos de la matriz por fila

Weitere ähnliche Inhalte

Was ist angesagt?

10. subalgoritmos parte i
10. subalgoritmos parte i10. subalgoritmos parte i
10. subalgoritmos parte i
rcarrerah
 
Función cuadrática: Excel
Función cuadrática: ExcelFunción cuadrática: Excel
Función cuadrática: Excel
Horacio181
 
Ejercicios sencillos en c
Ejercicios sencillos en cEjercicios sencillos en c
Ejercicios sencillos en c
Alma Navarro
 

Was ist angesagt? (20)

Vectores Matrices I
Vectores Matrices IVectores Matrices I
Vectores Matrices I
 
Ejercicios MATLAB
Ejercicios MATLABEjercicios MATLAB
Ejercicios MATLAB
 
Matlab
MatlabMatlab
Matlab
 
Matrices pseint
Matrices   pseintMatrices   pseint
Matrices pseint
 
Arreglos
ArreglosArreglos
Arreglos
 
Ejercicios de arreglo
Ejercicios de arregloEjercicios de arreglo
Ejercicios de arreglo
 
Tutorial descilab
Tutorial descilabTutorial descilab
Tutorial descilab
 
10. subalgoritmos parte i
10. subalgoritmos parte i10. subalgoritmos parte i
10. subalgoritmos parte i
 
Tipo de Arreglos
Tipo de ArreglosTipo de Arreglos
Tipo de Arreglos
 
Arreglos aleatorios visual Basic 6.0
Arreglos aleatorios visual Basic 6.0Arreglos aleatorios visual Basic 6.0
Arreglos aleatorios visual Basic 6.0
 
Arreglos C++
Arreglos C++Arreglos C++
Arreglos C++
 
Programacion matlab
Programacion matlabProgramacion matlab
Programacion matlab
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
 
Luis Gamboa
Luis  GamboaLuis  Gamboa
Luis Gamboa
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FI
 
Practica 10 Laboratorio de Computación para Ingenieros FI
Practica 10 Laboratorio de Computación para Ingenieros FIPractica 10 Laboratorio de Computación para Ingenieros FI
Practica 10 Laboratorio de Computación para Ingenieros FI
 
Mat lab01
Mat lab01Mat lab01
Mat lab01
 
Arreglos-Programacion
Arreglos-ProgramacionArreglos-Programacion
Arreglos-Programacion
 
Función cuadrática: Excel
Función cuadrática: ExcelFunción cuadrática: Excel
Función cuadrática: Excel
 
Ejercicios sencillos en c
Ejercicios sencillos en cEjercicios sencillos en c
Ejercicios sencillos en c
 

Andere mochten auch (9)

Ejercicios segunda práctica php.
Ejercicios segunda práctica php.Ejercicios segunda práctica php.
Ejercicios segunda práctica php.
 
Gutierres
GutierresGutierres
Gutierres
 
Ejercicios propuestos 4
Ejercicios propuestos 4Ejercicios propuestos 4
Ejercicios propuestos 4
 
09 Desarrollo Programas Estructurados
09 Desarrollo Programas Estructurados09 Desarrollo Programas Estructurados
09 Desarrollo Programas Estructurados
 
Matrices
MatricesMatrices
Matrices
 
Estructuras Repetitivas con PSeInt (Parte 2)
Estructuras Repetitivas con PSeInt (Parte 2)Estructuras Repetitivas con PSeInt (Parte 2)
Estructuras Repetitivas con PSeInt (Parte 2)
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo
 
Estructura Repetitiva MIENTRAS (While) con PSeInt
Estructura Repetitiva MIENTRAS (While) con PSeIntEstructura Repetitiva MIENTRAS (While) con PSeInt
Estructura Repetitiva MIENTRAS (While) con PSeInt
 
Ejercicios de algoritmos
Ejercicios de algoritmosEjercicios de algoritmos
Ejercicios de algoritmos
 

Ähnlich wie Pres arreglosmat animacion

Informe tecnico victor_uex
Informe tecnico victor_uexInforme tecnico victor_uex
Informe tecnico victor_uex
victoruex
 
Programas sencillos en lenguaje C
Programas sencillos en lenguaje CProgramas sencillos en lenguaje C
Programas sencillos en lenguaje C
Bertha Vega
 
Arreglos
ArreglosArreglos
Arreglos
lichic
 
7. operadores y estructura secuencial
7. operadores y estructura secuencial7. operadores y estructura secuencial
7. operadores y estructura secuencial
rcarrerah
 
Informe técnico 1
Informe técnico 1Informe técnico 1
Informe técnico 1
Saya Paredes
 

Ähnlich wie Pres arreglosmat animacion (20)

Informe tecnico victor_uex
Informe tecnico victor_uexInforme tecnico victor_uex
Informe tecnico victor_uex
 
Programas sencillos en lenguaje C
Programas sencillos en lenguaje CProgramas sencillos en lenguaje C
Programas sencillos en lenguaje C
 
Programas básicos en C
Programas básicos en C Programas básicos en C
Programas básicos en C
 
Programa
ProgramaPrograma
Programa
 
Escuela
EscuelaEscuela
Escuela
 
Escuela
EscuelaEscuela
Escuela
 
Arreglos
ArreglosArreglos
Arreglos
 
Laboratorio1 entrada-salida de datos / Lenguance C
Laboratorio1   entrada-salida de datos / Lenguance CLaboratorio1   entrada-salida de datos / Lenguance C
Laboratorio1 entrada-salida de datos / Lenguance C
 
7. operadores y estructura secuencial
7. operadores y estructura secuencial7. operadores y estructura secuencial
7. operadores y estructura secuencial
 
Revista digital
Revista digitalRevista digital
Revista digital
 
11 arreglos-multidimensionales
11 arreglos-multidimensionales11 arreglos-multidimensionales
11 arreglos-multidimensionales
 
Informe técnico 1
Informe técnico 1Informe técnico 1
Informe técnico 1
 
Programación 1: arreglos en C
Programación 1: arreglos en CProgramación 1: arreglos en C
Programación 1: arreglos en C
 
Practicas bloque 2
Practicas bloque 2Practicas bloque 2
Practicas bloque 2
 
ACTIVIDAD 4.docx
ACTIVIDAD 4.docxACTIVIDAD 4.docx
ACTIVIDAD 4.docx
 
Arreglos y matrices
Arreglos y matricesArreglos y matrices
Arreglos y matrices
 
Informe tecnicou1
Informe tecnicou1Informe tecnicou1
Informe tecnicou1
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
Trabajo final programacion
Trabajo final programacionTrabajo final programacion
Trabajo final programacion
 
Arreglos
ArreglosArreglos
Arreglos
 

Pres arreglosmat animacion

  • 1. Es programa puede ser dividido en varias secciones 1. Revise el siguiente programa y explique cuál es el resultado. #include <stdio.h> #define FILAS 3 #define COLUMNAS 4 int main ( ) { int i,j; int M[FILAS][COLUMNAS]; /* lectura por filas */ for ( i=0; i<FILAS; i++) for ( j=0; j< COLUMNAS; j++) scanf(“%d”, &M[i][j]); /* escribe por columnas */ for ( j=0; j<COLUMNAS; j++) { for ( i=0; i< FILAS; i++) printf(“%5d”,M[i][j]); printf(“n”); } } Declaraciones inicialesLectura de datos en el arreglo MEscritura de los datos del arreglo MFin del programa
  • 2. Incluye librería estándar de entrada y salida. Define dos constantes simbólicas: •FILAS con valor 3 y •COLUMNAS con valor 4 Observe que no requiere el signo igual como operador para la asignación. Declara la función mainDeclara las variables enteras i y j Observemos primero la sección con las declaraciones iniciales #include <stdio.h> #define FILAS 3 #define COLUMNAS 4 int main ( ) { int i,j; int M[FILAS][COLUMNAS]; Declara el arreglo M de elementos enteros con dimensiones M[3][4]
  • 3. Hagámosle un seguimiento a esta sección del programa Note que la lectura de datos para el arreglo M[ i ] [ j ] se realiza por FILAS, donde: • se mantiene fijo el valor de la FILA i mientras que • el valor de la COLUMNA j varía de 0 a 3. Los índices i y j de M[ i ] [ j ] varían de acuerdo a las instrucciones for, indicando con cuál valor del arreglo M se está trabajando en ese momento. Veamos ahora la sección que efectúa la lectura de datos por filas en el arreglo M /* lectura por filas */ for ( i=0; i < FILAS; i++) for ( j=0; j < COLUMNAS; j++) scanf(“%d”, &M[i][j]); M[0][0] M[0][1] M[0][2] M[0][3] M[1][0] M[1][1] M[1][2] M[1][3] M[2][0] M[2][1] M[2][2] M[2][3] M = i = j = 012 0123 FILA COLUMNA 01230123 Vamos primero paso a pasoVeamos ahora un elemento a la vezFinalmente veamos una fila completa Hasta aquí hemos leído los datos y los hemos almacenado en el arreglo M
  • 4. /* escribe por columnas */ for ( j=0; j < COLUMNAS; j++) { for ( i=0; i < FILAS; i++) printf(“%5d”,M[i][j]); printf(“n”); } • En la sección previa el arreglo M [ i ] [ j ] fue recorrido por FILAS, es decir horizontalmente. • Aquí el arreglo M [ i ] [ j ] es recorrido por COLUMNAS, es decir verticalmente. Observe que el programador utilizó aquí los índices i y j en un orden inverso al que usó para leer los datos: •Aquí la j está primero que la i. 012012012 Examinemos ahora la sección que imprime los datos almacenados en el arreglo M M[0][0] M[0][1] M[0][2] M[0][3] M[1][0] M[1][1] M[1][2] M[1][3] M[2][0] M[2][1] M[2][2] M[2][3] M = i = 012 0FILA COLUMNA 12 3j =
  • 5. /* escribe por columnas */ for ( j=0; j < COLUMNAS; j++) { for ( i=0; i < FILAS; i++) printf(“%5d”,M[i][j]); printf(“n”); } Procedamos ahora a observar el orden en que los datos son impresos M[0][0] M[0][1] M[0][2] M[0][3] M[1][0] M[1][1] M[1][2] M[1][3] M[2][0] M[2][1] M[2][2] M[2][3] “n” es Salto de línea “n” es Salto de línea “n” es Salto de línea “n” es Salto de línea La matriz que fue introducida con • 3 filas y 4 columnas, aparece impresa como de • 4 filas y 3 columnas.
  • 6. 2. Escriba un programa que inicializa un arreglo de enteros con diez valores y lo imprime en formato de tabla. //Inicialización de un arreglo #include <stdio.h> int main() { Note que n se define como un arreglo de 10 enteros. int i, n[ 10 ]; Coloca cero en cada uno de los elementos de n.Imprime el encabezado de la tabla. printf("Elemento t Valor n" ); //imprime el arreglo for ( i = 0; i < 10; i++ ) printf("%5d tt %3d n", i, n[i]); Imprime la tabla. return 0; } Termina el programa. //Inicializa el arreglo for ( i = 0; i < 10; i++ ) n[ i ] = 0;
  • 7. Este programa imprime 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 Elemento Valor
  • 8. 3. Escriba un programa que calcule y almacene el cuadrado de los primeros 100 números positivos. int main ( ) { int cuadrado[101]; int i; /* indice del for */ for ( i=1; i<=100; i++){ cuadrado[i] = i*i; } for ( i=1; i<=100; i++) printf(" El cuadrado de %d es %d n",i, cuadrado[i]); } Declara un arreglo de 101 elementos, los cien primeros números positivos son de 1 a 100 Calcula el cuadrado de 1 a 100, observe que no asigna valor a n [ 0 ]. Imprime los valores de i y los valores del arreglo desde cuadrado [ 1 ] hasta cuadrado [ 100 ]. Termina el programa
  • 9. El cuadrado de 64 es 4096 El cuadrado de 65 es 4225 El cuadrado de 66 es 4356 El cuadrado de 67 es 4489 El cuadrado de 68 es 4624 El cuadrado de 69 es 4761 El cuadrado de 70 es 4900 El cuadrado de 71 es 5041 El cuadrado de 72 es 5184 El cuadrado de 73 es 5329 El cuadrado de 74 es 5476 El cuadrado de 75 es 5625 El cuadrado de 76 es 5776 El cuadrado de 77 es 5929 El cuadrado de 78 es 6084 El cuadrado de 79 es 6241 El cuadrado de 80 es 6400 El cuadrado de 81 es 6561 El cuadrado de 82 es 6724 El cuadrado de 83 es 6889 El cuadrado de 84 es 7056 El cuadrado de 85 es 7225 El cuadrado de 86 es 7396 El cuadrado de 87 es 7569 El cuadrado de 88 es 7744 El cuadrado de 89 es 7921 El cuadrado de 90 es 8100 El cuadrado de 91 es 8281 El cuadrado de 92 es 8464 El cuadrado de 93 es 8649 El cuadrado de 94 es 8836 El cuadrado de 95 es 9025 El cuadrado de 96 es 9216 El cuadrado de 97 es 9409 El cuadrado de 98 es 9604 El cuadrado de 99 es 9801 El cuadrado de 100 es 10000 Este programa imprime
  • 10. 4. Corra el siguiente programa y explique lo que sucede #include <stdio.h> int main() { int c; char nombre[4][7]={ 'F','u','l','a','n','o','0', 'J','u','a','n','0',' ',' ', 'P','e','d','r','o','0',' ', 'E','l','i','s','a','0',' '}; /* El caracter nulo, significa el fin de texto */ printf ("Esto es un mensaje personalizado. nn") for (c = 0; c < 4; c++){ printf("Hola %s nn",nombre[c]); } } Declara el arreglo de caracteres ‘nombre’ y lo inicializa Imprime el título y los elementos que están en el arreglo de caracteres „nombre’ Fin del programa
  • 11. Este programa saluda a cada uno de los nombres que están en el arreglo de caracteres ‘nombre’ de 4x7. De la siguiente manera: 4. SOLUCIÓN Esto es un mensaje personalizado. Hola Fulano salta dos líneas, escribe Hola Juan salta 2 líneas, escribe Hola Pedro salta 2 líneas, escribe Hola Elisa y salta 2 líneas.
  • 12. 5 Escriba un programa que dada una cadena de caracteres fija, imprima la cadena completa, imprima el tercer carácter de la cadena y la subcadena a partir del cuarto carácter. Se define un arreglo de 7 caracteres: cadena [7]y se asigna una letra a cada elemento del arreglo.Imprime toda la cadena de caracteres, con %s. cadena[0]='L'; cadena[1]='e'; cadena[2]='t'; cadena[3]='r'; cadena[4]='a'; cadena[5]='s'; cadena[6]= '0'; /* Caracter nulo, significa el fin del texto */ printf("La cadena es: %sn", cadena); #include <stdio.h> int main() { char cadena[7]; // Define una cadena de caracteres printf("La subcadena a partir del cuarto caracter es: %sn", &cadena[3]); printf("El tercer caracter de la cadena es: %cn", cadena[2]); } Imprime el tercer carácter con %c y cadena[2].Imprime a partir del cuarto elemento, con %s.Fin del programa.
  • 13. Este programa imprime La cadena es: Letras El tercer caracter de la cadena es: t La subcadena a partir del cuarto caracter es: ras
  • 14. 6. El siguiente programa ordena los valores dados de un arreglo de diez elementos en orden ascendente. Analice el programa e indique: ¿ cuál será la salida del programa? #include<stdio.h> int main() { const int dimensionArreglo = 10; int a[ dimensionArreglo ] = { 2, 6, 4, 8, 10, 12, 89, 68, 45, 37 }; int i, temp; printf("nDatos en orden originaln"); for ( i = 0; i < dimensionArreglo; i++ ) printf("%4d",a[ i ]); for ( int pass = 0; pass < dimensionArreglo - 1; pass++ ) //pases for ( i = 0; i < dimensionArreglo - 1; i++ ) // un pase if ( a[ i ] > a[ i + 1]) { // una comparación temp = a [ i ]; // un intercambio a[ i ] = a[ i + 1 ]; a[ i + 1 ] = temp; } printf("nDatos en orden ascendenten"); for ( i = 0; i < dimensionArreglo; i++ ) printf("%4d",a[ i ]); printf("n"); } Declara el arreglo ‘a’ con dimensión 10 y lo inicializaImprime el arreglo ‘a’ en el orden originalOrdena los valores del arreglo ‘a’ utilizando la variable ‘temp’Imprime los valores del arreglo ‘a’ en orden ascendenteFin del programa
  • 15. 6. SOLUCIÓN: La técnica utilizada es similar al ordenamiento de burbuja (Bubble sort), pues los valores más pequeños gradualmente “burbujean” hacia la parte más alta del arreglo como las burbujas de aire ascienden en el agua, mientras que los valores más grandes se hunden al fondo del arreglo. La técnica consiste en pasar varias veces por el arreglo. Con cada paso, se comparan pares sucesivos de elementos. Si uno de los pares está en orden ascendente ( o son idénticos los valores) se queda tal cual. Si está en orden descendente se intercambian sus valores en el arreglo. La salida de este programa es: 2 6 4 8 10 12 89 68 45 37 2 4 6 8 10 12 37 45 68 89 Datos en orden original Datos en orden ascendente
  • 16. 7. Escriba un programa que llene una matriz de 3 X 3 de valores reales, luego: Calcule la suma de cada fila y la almacena en un vector Calcule la suma de cada columna y la almacena en otro vector. Matriz: arreglo de elementos reales con dimensión 3x3 Sum_fila: vector de 3 elementos reales Sum_fila: contiene la suma de cada fila Sum_colum: vector de 3 elementos reales Sum_colum: contiene la suma de cada columna. Para este programa se definen los siguientes elementos de datos:
  • 17. #include <stdio.h> #define N 3 int main ( ) { float matriz[N][N]; // Entrada float sum_fila[N], sum_colum[N]; // Salida int i,j; for (i=0; i<N; i++){ sum_fila[i]= 0.0; sum_colum[i]= 0.0; } /* Lee los datos para la matriz */ printf("Introduzca los %d elementos de la matriz por filan", N*N); for ( i=0; i<N; i++) for (j=0; j<N; j++) scanf("%f", &matriz[i][j]); /* Suma las filas */ for ( i=0; i<N; i++) for (j=0; j<N; j++) sum_fila[i] = sum_fila[i]+matriz[i][j] ; /* Suma las columnas */ for ( j=0; j<N; j++) for (i=0; i<N; i++) sum_colum[j] = sum_colum[j] + matriz[i][j] ; /* Imprime las sumas de cada fila y cada columna */ for (i=0; i<N; i++) printf("La suma de la fila %d es: %5.2f y la suma de la columna %d es: %5.2f n", i,sum_fila[i],i, sum_colum[i]); } Definiciones iniciales y declaración de variablesInicializa los arreglos sum_fila y sum_colum a ceroLee los datos y los almacena en el arreglo matrizRecorre cada fila y almacena la suma en sum_filaRecorre cada columna y almacena la suma en sum_columnImprime la suma de cada fila y de cada columnaFin de programa
  • 18. Interacción con el programa 1 2 3 4 5 6 7 8 9 Primero el programa solicita al usuario los datos para llenar la matriz, para ello hemos introducido unos datos de prueba, y luego se muestran los resultados para esos datos: La suma de la fila 0 es: 6.00 y la suma de la columna 0 es: 12.00 La suma de la fila 1 es: 15.00 y la suma de la columna 1 es: 15.00 La suma de la fila 2 es: 24.00 y la suma de la columna 2 es: 18.00 Introduzca los 9 elementos de la matriz por fila