Practica 3 Programacion Aplicada
Practica 3 Programacion Aplicada
Practica 3 Programacion Aplicada
INDUSTRIAL
PRACTICA # 3 Desarrollo de aplicaciones en C que
manejen colecciones de datos.
CAPÍTULO DEL CURSO: PROGRAMACIÓN ESTRUCTURADA PARA
APLICACIONES DE AUTOMATIZACIÓN.
OBJETIVOS DE APRENDIZAJE:
• Elaborar algoritmos en lenguaje C que permitan resolver los problemas
prácticos empleando funciones, punteros, y arreglos.
• Usar el ambiente de desarrollo integrado de Qt Creator para la edición,
compilación, ejecución y depuración de programas en C.
MATERIALES Y HERRAMIENTAS:
• Computadora con Qt Creator correctamente instalado
INTRODUCCIÓN
PROCEDIMIENTO:
EJERCICIOS:
¿Por qué se declaró a fPtr como un puntero a void? ¿Qué tipo de casteo es
necesario para imprimir los valores apuntados por el puntero fPtr?
Explique detalladamente su respuesta.
Debido a que a lo largo del ejercicio a fptr se le asignaron dos variables de tipo
diferente las cuales eran de tipo char y float por lo tanto la función void al no
almacenar un tipo de variable en especifico se le pudo asignar ambos tipos de
variable con un casteo explicito (float*) y (char*).
Al usar rand para generar los valores aleatorios nos entrega como resultado los
mismos valores debido a que esta función utiliza un valor semilla o inicial el cual
da el mismo resultado tras ejecutarlo varias veces, para corregir este problema
debemos acudir a la función srand y asignarle el tiempo como argumento de esta
forma el valor inicial ira cambiando todas las veces que sea necesario.
IMPLEMENTACIONES Y RESULTADOS
EJERCICIO #1:
include <stdio.h>
int main(void) {
char alphanum;
float numero1=7.3;
float numero2;
void *fptr;
fptr = &numero1;
numero2 = *(float*)fptr;
printf("El valor de numero2= %.1f\n",numero2);
printf("La dirección de numero1= %p\n",&numero1);
printf("La dirección almacenada en fptr= %p\n",fptr);
printf ("La direccion de numero 2: %p\n", &numero2);
printf ("La direccion de fptr es: %p\n", &fptr);
fptr= &alphanum;
printf ("La nueva dirección almacenada de fptr: %p\n", fptr);
EJERCICIO #2:
PRIMERA VERSIÓN
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int i, arreglo[10]={1,2,3,4,5,6,7,8,9,10};
int rangoini,rangofin;
srand(time(NULL));
for (i=0;i<10;i++){
SEGUNDA VERSIÓN
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int i, arreglo[10]={1,2,3,4,5,6,7,8,9,10};
int rangoini,rangofin;
srand(time(NULL));
for (i=0;i<10;i++){
arreglo[i]=rand()%((rangofin-rangoini+1)+rangoini);
printf("EL elemento de la posición %d del arreglo es: %d\n",i,*(arreglo+i));
cambiavalorpos(arreglo);
for(i=0;i<10;i++)
printf("EL elemento de la posición %d del arreglo es: %d\n",i,*(arreglo+i));
printf("La direccion del primer elemento es: %p\n La direccion del tercer elemento es:%p
\n La direccion del cuarto elemento es: %p\n La direccion del quinto elemento es
%p\n",arreglo+0,arreglo+3,arreglo+4,&arreglo+5);
return 0;
}
CONCLUSIONES
EJERCICIO1
Para el desarrollo del ejercicio se utilizan 3 variables de las cuales 2 son de tipo
floante y una de tipo carácter, además se interactúa con un puntero tipo void, el
cual es utilizado para almacenar dos tipos de variables diferentes demostrando
así la versatilidad al utilizar la función void además del uso de un casteo al
EJERCICIO 2
Para el desarrollo del ejercicio se utilizan librerías como <stdlib.h> y <time.h> las
cuales se usan de puente para la función srand que añade al arreglo elementos
de forma aleatoria, además se observa la relación que existe entre los arreglos
y los punteros, la cual fue de mucha ayuda para la resolución del problema a
través de la aritmética de puteros.
RECOMEDACIONES
EJERCICICO 1
EJERCICIO 2
BIBLIOGRAFIA
[1]. Deitel and Deitel. Como programar en C/C++. Segunda edición o superior.