PDF de programación - Programación estructurada - Arreglos

Imágen de pdf Programación estructurada - Arreglos

Programación estructurada - Arreglosgráfica de visualizaciones

Publicado el 12 de Junio del 2019
68 visualizaciones desde el 12 de Junio del 2019
575,9 KB
31 paginas
Creado hace 7a (21/03/2012)
Programación estructurada

Arreglos multidimensionales
Cadenas de caracteres

Dr. Noé Alejandro Castro Sánchez

Arreglos bidimensionales
 Matrices, tablas, vector de vectores.
 Conjunto finito y ordenado de elementos

homogéneos en el que se necesita
especificar dos subíndices para acceder a
un elemento.

Col 1

Col 3

Col 5

Fila 0 
Fila 1 
Fila 2 
Fila 3 

Arreglos bidimensionales
 Declaración

◦ tipo nombre[filas][columnas]
◦ Ejemplo: int estante[2][2];

 Procesamiento de elementos:

◦ Inserción:
estante[1][0] = 5;
◦ Lectura:
libro = estante[1][1];
◦ El acceso a los elementos se hace mediante
bucles anidados.

Arreglos multidimensionales
 Arreglos de más de dos dimensiones.
 Raramente los datos del mundo

requieren más de 2 o 3 dimensiones.

 Arreglo tridimensional:

Arreglos multidimensionales
 Declaración:
tipo nombre[t1][t2][t3]…[tn]

int nombre[5][10][5]…[10];

 Ejemplo:

char libro[pag][lineas][col];

Ejemplo
 Llenar una matriz de 3 x 4 con unos e

imprimirla


 Ejercicio

Realice la impresión en forma matricial:



1 1 1 1
1 1 1 1
1 1 1 1

Ejercicio 1
 Se desean capturar desde teclado las

calificaciones de tres exámenes parciales
de 5 alumnos

 Calcular e imprimir el promedio de cada

alumno

 Imprimir qué alumnos (referenciados por

el número de renglón) no exentan

Ejercicio II
 Lea valores para una matriz de 4 x 4 y

realice lo siguiente:
◦ Identifique el menor y el mayor elemento, e
imprima su posición (renglón/columna)
◦ Sume los valores de la segunda y cuarta
columna
◦ Sume los valores del segundo y cuarto
renglón

Ejercicio III
 Dada una matriz cuadrada, sumar todos

sus valores excepto los de la periferia.
Ejemplo:



0
5
4
3

4
9
8
0

3
9
7
1

6
1
2
6

acum = 1 + 9 + 2 + 8

Nota: Los valores de cada casilla serán
asignados aleatoriamente

Generación de aleatorios I
#include<stdio.h>
#include<stdlib.h> // libreria para uso de rand()
#include<conio.h>
#include<time.h> // libreria para uso de time()

main(void) {
int tiempo = time(NULL), num;

srand(tiempo); //Semilla para generar aleatorio

num = rand()%100; // Generación de aleatorio

printf("%d ", num);

getch();
}

Generación de aleatorios II
 rand() genera un número aleatorio. Siempre
que se reinicie el programa, generará el mismo
número. Esto no es muy útil.

 srand(numero) le proporciona a rand() un
número a partir del cual generará el aleatorio
(por ello se llama a dicho número semilla).
◦ Pero si siempre usamos el mismo número, generará

los mismos aleatorios.

◦ Si pasamos un número que varíe constantemente,
(como el tiempo) generará aleatorios diferentes

Generación de aleatorios III
 time(NULL) devuelve la cantidad de segundos

transcurridos desde las 00:00 horas, del 1 de
enero de 1970, fecha conocida como Época
UNIX (o UNIX Epoch)

 Bajo estas consideraciones, entonces:

◦ Generar valores entre 0 y 1:
rand() % 2;
◦ Generar valores entre 0 y 99:
rand() % 100;
◦ Etc.

Ejercicio IV
 Realice un programa que trasponga una
matriz de 4 x 4. Considere lo siguiente:
◦ La matriz se llenará con números aleatorios
comprendidos entre 10 y 99.
◦ Imprimir matriz original y matriz traspuesta



14 22 10 91
34 82 13 33
54 10 39 71
66 81 50 12



14 34 54 66
22 82 10 81
10 13 39 50
91 33 71 12



Cadenas y arreglos

Cadenas y arreglos
 Cadenas de texto: secuencia de

caracteres (e. g., “abcde”, “hola mundo”).

 C trata las cadenas de texto como

arreglo de caracteres.

Array

Cadena

A

A

B

B

C

C

D

D

E

E

F

F

\0

Cadenas y arreglos (II)
 Las cadenas terminan con el carácter nulo

(\0) al final del arreglo.

 C no tiene un tipo predefinido para

manipular cadenas de caracteres (string).

Inicialización
char cad1[] = “Hola”;

char cad2[] = {‘H’,‘o’,‘l’,‘a’,0};
char cad3[] = {‘H’,‘o’,‘l’,‘a’, ‘\0’};


cad:

H

O

L

A

\0

4 + 1

Tratamiento de cadenas
 Incluir librería string.h
 strlen(cadena)

Devuelve la longitud de la cadena sin tomar en
cuenta el caracter de final de cadena.

 strcpy(cad_destino, cadena_origen)

Copia el contenido de <cad_origen> en
<cad_destino>.

 strcat(cadena_destino, cadena_origen)
Concatena el contenido de <cadena_origen> al
final de <cadena_destino>.

Tratamiento de cadenas (II)
 strcmp(cadena1, cadena2) :
Compara las dos cadenas. Devuelve:
◦ 0 si las dos cadenas son iguales,
◦ < 0 (número negativo) si <cadena1> es menor
que (precede alfabéticamente a) <cadena2> y
◦ > 0 (número positivo) si <cadena1> es mayor

que <cadena2>.



Lectura
 scanf()
char cad[20];
printf(“Ingresa nombre:”);
/* leer cadena */
scanf(“%s”, cad);
/* leer un carácter */

scanf(“%c”, &cad[15]);

◦ scanf() lee datos hasta encontrar un espacio
en blanco.



Lectura (II)
Lectura de “HOLA MUNDO” usando scanf()

8



\0 %

O

= @

~

H

L

A


 gets()

Basura

Lee caracteres separados por espacios en
blanco hasta el salto de línea.



gets(cad);

Escritura
 printf()


printf(“%s”, cad);


 puts()

◦ reemplaza el carácter nulo por salto de línea.

puts(cad);

Ejemplo
#include <stdio.h>
#include <conio.h>

main(void){
char a[20];

printf("Ingrese la cadena: ");
scanf("%s", a);
printf("La cadena es : %s", a);
getch();
}

Ejercicio 1
 Remplace la lectura de la cadena con la
función gets y la impresión de ella con
puts.

Ejemplo II
#include <stdio.h>
#include <stdlib.h>

main(void)
{
char a[20], b[20];

printf("Ingrese cadena con algún espacio: ");
scanf("%s", a);



Ejemplo II (continuación)

printf("Ingrese la misma cadena: ");
gets(b);

printf("La impresión en <a> es: ");
puts(a);

printf("La impresión en <b> es: ");
printf("%s", b);

getch();
}


Ejercicio
 Ejecute el programa ¿qué ocurre?

Ejercicio
 Ejecute el programa ¿qué ocurre?
 El buffer contiene los caracteres después

del primer espacio en blanco

una cadena



Salto de línea (\n)



 La función gets() extrae el contenido del

buffer, y el salto de línea la invoca.

Solución
 Invoque la función fflush(stdin)

inmediatamente después de scanf()

Ejercicios
 Lea una cadena desde teclado e imprímala

en forma inversa:
◦ Entrada “Recorrido monumental”
◦ Salida: “latnemunom odirroceR”

 Imprima la cadena de entrada en el

siguiente orden: primer carácter, último;
segundo, penúltimo; tercero,
antepenúltimo; y así sucesivamente

Ejercicios
1. Lea una cadena de caracteres y cuente
el número de dígitos que tiene, letras y
caracteres especiales, e imprima la
frecuencia

2. Lea una cadena de caracteres con varios

espacios en blanco entre las palabras y
elimínelos para que sólo quede uno
entre ellas. Imprima la cadena resultante
  • Links de descarga
http://lwp-l.com/pdf16106

Comentarios de: Programación estructurada - Arreglos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad