Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fase de análisis
Datos de entrada: son edad del paciente digito que indique si tiene diabetes o no
Datos de salida: todo el registro del paciente
Utilice la estructura repetitiva do while (hacer mientras) para que el cuerpo del bucle
se ejecuta al menos una vez y hasta que se cumpla la condición. Tomando en
cuenta que el ciclo se detiene cuando la condición no se cumple. Además, también
se utilizó el ciclo for para recorrer el arreglo de ventas y los vectores.
Ciclo For
Los ciclos for son lo que se conoce como estructuras de control de flujo cíclicas o
simplemente estructuras cíclicas, estos ciclos, como su nombre lo sugiere, nos
permiten ejecutar una o varias líneas de código de forma iterativa, conociendo un
valor especifico inicial y otro valor final, además nos permiten determinar el tamaño
del paso entre cada "giro" o iteración del ciclo.
¿Cómo funciona un Ciclo For?
Para comprender mejor el funcionamiento del ciclo for, pongamos un ejemplo,
supongamos que queremos mostrar los números pares entre el 50 y el 100, si
imaginamos un poco como seria esto, podremos darnos cuenta que nuestro ciclo
deberá mostrar una serie de números como la siguiente: 50 52 54 56 58 60 ... 96 98
100. Como podemos verificar, tenemos entonces los componentes necesarios para
nuestro ciclo for, tenemos un valor inicial que sería el 50, tenemos también un valor
final que sería el 100 y tenemos un tamaño de paso que es 2 (los números pares).
Estamos ahora en capacidad de determinar los componentes esenciales para un
ciclo for.
.
Me base con las estructuras de control selectivas if, if else, Switch case y if anidados
, para seleccionar y hacer operaciones según ciertas variables como por ejemplo
las opciones del menú, y para determinar las ganancias o pérdidas según sea el
caso.
if: (SI)
Un if en programación se utiliza para evaluar una expresión condicional: si se
cumple la condición (es verdadera), ejecutará un bloque de código. Si es falsa, es
posible ejecutar otras sentencias.
Dónde condición es una expresión booleana. La expresión booleana es una
combinación de operadores relacionales, condicionales y valores. La instrucción o
instrucciones representa las líneas de código que se ejecutarán si el resultado de
condición es true(verdadero). (Álvarez,2001).
¿Cómo funciona un if?
Primero de todo, se evalúa la condición. Si el resultado se cumple, se ejecutará el
código. Si el resultado no es true, el programa continúa con la sentencia siguiente.
sí hay varias instrucciones que interesan ejecutar dónde de la evaluación, estén
agrupadas con llaves { }. (Álvarez,2001).
If-else (sino)
este condicional se tomó en cuenta porque muchas se necesitará ejecutar un bloque
de instrucciones si la expresión evaluada es true(verdadera) entonces el otro bloque
de instrucciones tiene que ser false(falso). Tenemos la posibilidad de evaluar si NO
se cumple la condición. Se hace con la palabra reservada else. Eso es lo que
significa else en programación, nos permite ejecutar otras instrucciones. (Meza
González,2012).
If anidado
En algunas ocasiones, se necesitará ejecutar una sentencia if como parte de otra
sentencia if. yo utilice esta condición para hacer la evaluación de las materias
reprobadas y acumulas. (Álvarez,2001).
Switch
Utilizamos la Estructura de selección múltiple switch para comparar la posición j del
registró de los datos de cada paciente y también para imprimir los datos en las
situaciones de cada función, asi como para cada una de las opciones del menú.
Los condicionales Switch, son una estructura de control condicional, que permite
definir múltiples casos que puede llegar a cumplir una variable cualquiera, y qué
acción tomar en cualquiera de estas situaciones, incluso es posible determinar qué
acción llevar a cabo en caso de no cumplir ninguna de las condiciones dadas.
Como vemos, primero de todo usamos la palabra reservada switch.
• La variable es para verificar el valor que tiene almacenado.
• La palabra case indica el valor que va a verificar. Lo habitual es que sea un
valor numérico o un texto. La combinación de la palabra case y su valor se
llama etiqueta case.
• El valor literal es cualquier valor válido que la variable que vamos a evaluar
contiene. Podemos poner una etiqueta case por cada valor que queremos
evaluar. Los valores de la etiqueta casen no pueden ser variables, o
expresiones o métodos. Si que pueden ser constantes.
• La sentencia break es una palabra clave opcional, que hace que el flujo del
código termine dentro de toda la sentencia switch. Si no existiese, todas las
instrucciones que vemos dentro del código se ejecutarían, hasta encontrar
una palabra break.
• La palabra clave default indica el bloque de código si no satisface ninguna de
las etiquetas casen que hemos escrito. Podemos decir que esta etiqueta es
parecida a la sentencia else. También es una etiqueta opcional. Usar switch
ayuda a simplificar el código y evita confusiones, ya que organiza en varias
ramas el código que va a será ejecutado.(BetoQuiroga,2017).
Arreglos
Utilice arreglos unidimensionales para la suma de los días con nivel de glucosa ya
sea normal alta o baja y bidimensionales para almacenar los datos del registró y los
expedientes.
¿Qué es un Arreglo ?
Un arreglo es una estructura, es decir es un conjunto de variables que se citan y
manejan con un mismo nombre, y que permite además la utilización individual de
sus elementos. (Joyanes, 2008).
Esto significa que un arreglo es una variable que provee la opción de disponer de
varios datos o espacio para datos a los cuales se puede acceder con un mismo
nombre.
Un arreglo es en resumen un conjunto de datos finito y del mismo tipo. En realidad,
funciona como cualquier variable cualquiera, excepto que, en lugar de almacenar
un solo valor, guarda algunos valores. Los arreglos pueden representarse en varias
dimensiones: Unidimensionales, Bidimensionales, hasta n Dimensionales. En esta
unidad se estudiarán los de una y dos dimensiones. Iniciaremos por los primeros.
(Rafael Meléndez 2019).
Tipo de arreglos
Arreglos Unidimensionales
Un Arreglo Unidimensional es una estructura de datos organizada y bien
coordinada, que cuenta con una cantidad pequeña de datos, los cuales deben ser
del mismo tipo para ser procesados en dicho Arreglo, en programación se usa
mayormente en la creación de la estructura de listas en orden natural y totalmente
con elementos similares en su interior. Los datos a manipular en su interior no solo
deben poseer un tipo de dato similar, sino que también deben poseer un seudónimo
similar entre ellos, pero los mismos se han de diferenciar con la posición que se les
otorgue dentro del Arreglo bajo el uso de sus funciones y ordenanzas básicas
estipuladas en la línea de programación con su codificación especial. Además, un
Arreglo de este tipo para ejecutar sus funciones debe primero que todo iniciar sus
variables o datos en el inicio del programa que se esté llevando a cabo, como de la
misma manera en la misma sección donde se está realizando dicha acción, se debe
establecer tanto el nombre como el tipo de dato que ha de ejecutar dicho Arreglo en
su interior. (Rafael Meléndez 2019).
Arreglos bidimensionales
Los arreglos bidimensionales son tablas de valores. Cada elemento de un arreglo
bidimensional está simultáneamente en una fila y en una columna. En matemáticas,
a los arreglos bidimensionales se les llama matrices, y son muy utilizados en
problemas de Ingeniería. En un arreglo bidimensional, cada elemento tiene una
posición que se identifica mediante dos índices: el de su fila y el de su columna
(Rafael Meléndez 2019).
Funcionamiento
La declaración de un arreglo bidimensional es similar al de un arreglo
unidimensional, así:
Ejemplo
tipoDato puede ser cualquiera de tipos estándares de datos: int, double, String, entre
otros. Esto implica que todos los datos serán únicamente del tipo especificado en
la declaración.
nombreVariable es el nombre que se asigna al arreglo, en este ejemplo:
registroNotas.
nFilas es el número máximo de filas que tendrá la matriz.
nCol es el número máximo de columnas que tendrá la matriz.
Vectores
Los Vectores o también denominados bajo el seudónimo “Tablas
Unidimensionales”, son arreglos que solo poseen una sola dimensión y no necesitan
del uso de múltiples índices para realizar sus funciones, estableciendo así su ciclo
en operaciones cortas y poco elaboradas en un periodo de tiempo módico como si
complicación alguna en su ejecución.
De la misma manera los datos en su interior deben ser catalogados bajo el mismo
tipo de dato, el cual mayormente es colocado en tipo numérico, así mismo el nombre
de referencia o nombre que los datos ocuparan mientras se ejecuten en el interior
de este Arreglo debe ser el mismo y se diferencian uno del otro con el número de
posición que se lo otorga a cada dato con su respectivo valor. Además, estos
Arreglos cumplen con una cualidad un tanto peculiar, la cual consta que sus datos
son ordenados de mayor a menor y de la misma manera su ciclo se efectúa, siendo
el valor más bajo o con cualidades menores comienza el ciclo de procesos del
Vector y valor dentro del vector con cualidades más altas es el que se ejecutara de
ultimo cumpliendo con la culminación del ciclo de forma efectiva. (Jesús Osorio
2012).
Matrices
Las Matrices son conocidas también bajo el seudónimo definido como “Tablas
Bidimensionales” y dicho seudónimo lo adquiere gracias a poseer solamente dos
dimensiones que componen su estructura de composición, además comparte cierta
cantidad de similitudes con los vectores. Sin embargo, se diferencian de estos
últimos por poseer dos subíndices para la generación de sus funciones, como así
mismo el ciclo de función y de realización de las operaciones a llevar a cabo bajo el
uso de una Matriz es superior a la de un vector dado que manipulan una cantidad
de datos por encima de los mencionados anteriormente. Los datos de una Matriz
deben ser catalogados e inicializados de manera efectiva, ya que al utilizar dos
subíndices los datos dentro de dicho Arreglo se ven ubicados en cuadrantes del
mismo y su tipo de dato siempre debe ser el mismo pero su ubicación para ser
identificados se determina bajo el uso de coordenadas de posición y que en el
lineamiento de programación son utilizados para ir realizando las operaciones de
forma efectiva en una Matriz. (Jesús Osorio 2012).
Librerías utilizadas
se utilizaron la libreria stdlib.h y stdio.h para ingreso e impresion de datos con las
funciones scan y print respectivamente, ademas de la libreria locale.h para que
pueda aceptar la acentuación de las palabras su sintaxis es setlocale(LC_CTYPE,
"Spanish");
Fase de diseño
Algoritmo nombre
setlocaleLC_CTYPE,"Spanish"
Dimension datos[F][C]
Dimension expedientes[F][X]
Hacer
Escribir '***********************'
Escribir '***********************'
Escribir '***********************'
Leer opc
1:
Registrodatos
2:
Listadodatos
3:
RegExpedienteexpedientes
4:
ListadoExpexpedientes
5:
CantidadDiasNivelesexpedientes
6:
Promedioexpedientes
FinSegun
FinAlgoritmo
Segun j Hacer
0:
dat[i][j]=i+1
1:
Leer dat[i][j]
2:
Leer dat[i][j]
FinSegun
FinPara
Borrar Pantalla
FinPara
FinSubProceso
Escribir 'Codigo\tEdad\tDiabetes'
Segun j Hacer
0:
Escribir '',dat[i][j]
1:
Escribir '\t',dat[i][j]
2:
Escribir '\t',dat[i][j]
FinSegun
FinPara
Escribir ''
FinPara
FinSubProceso
Segun j Hacer
0:
a[i][j]=i+1
1:
a[i][j]=55)+Azar(200-55)+1)
2:
a[i][j]=55)+Azar(200-55)+1)
3:
a[i][j]=55)+Azar(200-55)+1)
4:
a[i][j]=55)+Azar(200-55)+1)
FinSegun
FinPara
Borrar Pantalla
FinPara
FinSubProceso
Escribir 'Codigo\tSemana1\tSemana2\tSemana3\tSemana4'
Segun j Hacer
0:
Escribir '',a[i][j]
1:
Escribir '\t',a[i][j]
2:
Escribir '\t',a[i][j]
3:
Escribir '\t',a[i][j]
4:
Escribir '\t',a[i][j]
FinSegun
FinPara
Escribir ''
FinPara
FinSubProceso
SubProceso CANTIDADDIASNIVELES( A[][X])
Escribir 'Codigo\t\tDescripcion'
Escribir '--------------------------------------------------------'
0,0,0
FinSubProceso
Si (j>=1)
Si (a[i][j]>=70)
Si (a[i][j]<=110)
acum[0]=acum[0]+1
SiNo
acum[1]=acum[1]+1
FinSi
SiNo
acum[2]=acum[2]+1
FinSi
FinSi
FinPara
Escribir ''
acum[0]=0
acum[1]=0
acum[2]=0
Escribir '--------------------------------------------------------'
FinPara
}
SubProceso PROMEDIO( A[][X])
Escribir '-------------------------------------------------------'
Si (j==0)
Escribir '\t',a[i][j]
FinSi
Si (j>0)
promedio=promedio+a[i][j]
FinSi
FinPara
promedio=promedio/4
Escribir '\t.2f',promedio
Escribir '--------------------------------------------------------'
FinPara
FinSubProceso
Fase de implementación
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define F 10
#define C 3
#define X 5
/*
Autor: Flores Arvizu Alejandra / Karen Navez Leslie / Mora González Angel Maximiliano
Archivo: PRO-Grupo-EP3_Navez_Flores_Mora.c
Descripsión: El hospital del Sur desea llevar el control mensual del nivel de glucosa diez pacientes
(azúcar en la sangre)
para prevenir el desarrollo de la diabetes. Para ello, le ha pedido a cada uno de sus
pacientes que acudan una
mg/dl, si los niveles se encuentran fuera de ese rango, puede existir la posibilidad de que el
paciente este
Por lo anterior, el hospital ha solicitado que se implemente un programa que sea una
herramienta para llevar
1). Registro de datos generales de los pacientes: En esta opción, se deberán registrar los
datos generales
de los pacientes: código, edad y un dígito para indicar si tiene o no diabetes, por ejemplo:
0: Sin diabetes y
1: Diabetes.
2). Listado de pacientes: Esta opción desplegará los pacientes que se encuentran
registrados. En caso de
3). Expediente de pacientes: Esta opción permitirá registrar las mediciones del nivel de
glucosa de cada
paciente. El nivel de glucosa se mide solo una vez a la semana durante un mes. Para llenar
el expediente, se
4). Listado del expediente de pacientes: Esta opción desplegará los niveles de glucosa de
cada paciente,
mensaje de notificación.
5). Análisis de niveles de glucosa: En esta opción se deberán realizar algunos cálculos por
cada paciente,
6). Promedio del nivel de glucosa mensual por paciente: En esta opción se calculará el
promedio de los
niveles de glucosa registrados por cada paciente, esto durante cada mes. Para esta
opción se deberá
*/
int main()
setlocale(LC_CTYPE,"Spanish");
srand(time(NULL));
int datos[F][C],expedientes[F][X],opc;
do{
printf("\n*************************\n");
printf("\n*************************\n");
scanf("%d",&opc);
switch(opc){
case 1:
Registro(datos);
break;
case 2:
Listado(datos);
break;
case 3:
RegExpediente(expedientes);
break;
case 4:
ListadoExp(expedientes);
break;
case 5:
CantidadDiasNiveles(expedientes);
break;
case 6:
Promedio(expedientes);
break;
}while(opc!=0);
return 0;
int i,j;
for(i=0;i<F;i++){
for(j=0;j<C;j++){
switch(j){
case 0:
dat[i][j]=i+1;
break;
case 1:
scanf("%d",&dat[i][j]);
break;
case 2:
scanf("%d",&dat[i][j]);
break;
}system("cls");
}
void Listado(int dat[][C]){
int i,j;
printf("Codigo\tEdad\tDiabetes\n");
for(i=0;i<F;i++){
for(j=0;j<C;j++){
switch(j){
case 0:
printf("%d",dat[i][j]);
break;
case 1:
printf("\t%d",dat[i][j]);
break;
case 2:
printf("\t%d",dat[i][j]);
break;
}printf("\n");
int i,j;
for(i=0;i<F;i++){
for(j=0;j<X;j++){
switch(j){
case 0:
a[i][j]=i+1;
break;
case 1:
a[i][j]=55+(rand()%(200-55+1));
break;
case 2:
a[i][j]=55+(rand()%(200-55+1));
break;
case 3:
a[i][j]=55+(rand()%(200-55+1));
break;
case 4:
a[i][j]=55+(rand()%(200-55+1));
break;
}system("cls");
int i,j;
printf("Codigo\tSemana1\tSemana2\tSemana3\tSemana4\n");
for(i=0;i<F;i++){
for(j=0;j<X;j++){
switch(j){
case 0:
printf("%d",a[i][j]);
break;
case 1:
printf("\t%d",a[i][j]);
break;
case 2:
printf("\t%d",a[i][j]);
break;
case 3:
printf("\t%d",a[i][j]);
break;
case 4:
printf("\t%d",a[i][j]);
break;
}printf("\n");
int i,j;
printf("Codigo\t\tDescripcion\n");
printf("--------------------------------------------------------\n");
int acum[]={0,0,0};
for(i=0;i<F;i++){
for(j=0;j<X;j++){
if(j>=1){
if(a[i][j]>=70){
if(a[i][j]<=110){
acum[0]=acum[0]+1;
}else{
acum[1]=acum[1]+1;
}
}else{
acum[2]=acum[2]+1;
printf("\n");
acum[0]=0;
acum[1]=0;
acum[2]=0;
printf("\n--------------------------------------------------------\n");
int i,j;
printf("Codigo\tPromedio de glucosa\n");
printf("\n-------------------------------------------------------\n");
float promedio=0;
for(i=0;i<F;i++){
for(j=0;j<X;j++){
if(j==0){
printf("%d\t",a[i][j]);
if(j>0){
promedio=promedio+a[i][j];
}promedio=promedio/4;
printf("\t%.2f",promedio);
printf("\n--------------------------------------------------------\n");
Fase de pruebas
Ilustración 1
Ilustración 2
Ilustración 4
Ilustración 5
6. Opc. 5 Se realiza el cálculo de los días en los que el paciente tuvo un nivel
de glucosa alto, bajo o normal.
Ilustración 6
Ilustración 7
Conclusiones