Sei sulla pagina 1di 6

PRUEBA 1 SIMULACRO

ESTRUCTURAS Y LISTAS (28 puntos)


1. (4 puntos) Transforma el siguiente programa para que tenga la
misma funcionalidad, pero usando estructuras. Para ello, debers
definir la estructura persona conteniendo las variables nombre, edad,
y apellido, y reemplazar el cdigo de la funcin main() usando una
variable tipo persona.
#include <stdio.h>
#include "cs50.h"
int main()
{
string nombre="Alicia";
string apellido="Gmez";
int edad=24;
printf("Bienvenid@, %s %s, %i aos\n", nombre, apellido, edad);
}

2. (6 puntos) Transforme el siguiente cdigo para que tenga la misma


funcionalidad, pero usando un arreglo de estructuras. Para ello,
debers definir la estructura persona conteniendo las variables
nombre, edad, y apellido, y reemplazar el cdigo de la funcin main()
usando un arreglo de tipo persona. En vez de volver a escribir las
lneas de cdigo que no cambian, puedes simplemente escribir el
nmero de lnea.
1. #include <stdio.h>
2. #include "cs50.h"
3.
4.
5.
6.
7.

int main()
{
string nombre[5];
string apellido[5];
int edad[5];

8.
9.
10.
11.
12.
13.
14.
15.
16.

for(int i=0; i<5; i++)


{
printf("Ingrese nombre de la persona %i: ", i+1);
nombre[i]=GetString();
printf("Ingrese apellido de la persona %i: ", i+1);
apellido[i]=GetString();
printf("Ingrese edad de la persona %i: ", i+1);
edad[i]=GetInt();
}

17. for(int i=0; i<5; i++)

18. printf("Datos persona %i: %s %s %i\n", i+1, nombre[i],


apellido[i], edad[i]);
19.}

3. (2 puntos) Considere un arreglo de tamao N que contiene M


nmeros (0<M<N). Para insertar un nuevo nmero en la posicin i
(i<M) es necesario realizar las siguientes operaciones:

copiar el contenido de la casilla M-1 a la casilla M

copiar el contenido de la casilla M-2, a la casilla M-1

copiar el contenido de la casilla i hacia la casilla i+1

copiar el contenido del nuevo nmero en la casilla i.


Considere ahora una lista con M nmeros. Describa en lenguaje natural
(sin cdigo) las operaciones que es necesario realizar para insertar un
nmero en la posicin i (0<i<M). Suponga que el primer elemento de la
lista ocupa la posicin 0.
4. (2 puntos) Describa en lenguaje natural (sin cdigo) las operaciones
que es necesario realizar para insertar un nuevo nodo al final de la
lista (suponga que la lista no est vaca)
5.
a) (2 puntos) Modifica la estructura usada en la pregunta 1 para ser
usada en una lista y crea una variable global que se use como el
puntero a esa lista.
b) (1 punto) Escribe la funcin main(), donde se llama a la funcin
crea_lista(), la que se encarga de pedir al usuario los datos
necesarios para llenar la lista. A continuacin, en la funcin main(),
se pide al usuario que ingrese un nmero de ao y luego se llama a
la funcin muestra(), entregando como parmetro el ao ingresado
por el usuario.
c) (3 puntos) Escribe la funcin muestra() que recibe como
argumento un ao e imprime el nombre y apellido de las personas
de la lista que nacieron despus del ao ingresado por el usuario.

6. (8 puntos) Dibuja el contenido de cada elemento de la lista


(incluyendo el puntero first) luego de ejecutar el siguiente
programa. Supn que el usuario ingresa los siguientes datos:
1
Luis

1937
1
Maria
1956
1
Ral
1984
2
Supn adems que los nodos de Luis, Mara y Ral quedan
almacenados en las direcciones 0x03, 0x10 y 0xFC,
respectivamente.
#include <stdio.h>
#include "cs50.h"
typedef struct nodo{
string nombre;
int anho_nac;
struct nodo *next;
} nodo;
nodo *first=NULL;
void crea_lista(void);
int main() {
crea_lista();
}
void crea_lista(void) {
string nombre;
int anho_nac,op;
nodo *tmp;
do {
printf("Ingrese opcin:\n1: Agregar nodo\n2: Terminar\n");
op=GetInt();
if(op==1) {
printf("Ingrese nombre: ");
nombre=GetString();
printf("Ingrese ao de nacimiento: ");
anho_nac=GetInt();
if(first==NULL) {
first=malloc(sizeof(nodo));
first->nombre=nombre;
first->anho_nac=anho_nac;
first->next=NULL;
}
else {

tmp=first;
first=malloc(sizeof(nodo));
first->nombre=nombre;
first->anho_nac=anho_nac;
first->next=tmp;
}
}
} while(op!=2);
}

HTML (10 puntos)


7. (5 puntos) Escribe el cdigo HTML que permite desplegar la
siguiente pgina web:

8. (5 puntos) Escriba el cdigo HTML que permite desplegar el siguiente


formulario

PHP (20 puntos)


9. (5 puntos) Para el siguiente cdigo en PHP:
<?php

$oracion= "el oso vive en una casa de monos";


//-complete su codigo aqu-!
?>
complete las instrucciones para que la oracin se despliegue en el
browser del siguiente modo:
"sonom ed asac anu ne eviv oso le"
El orden es el inverso del texto donde la primera palabra est en ltima
posicin, y cada una de las palabras est tambin escrita en orden
reverso. Por ejemplo la palabra "casa" se escribe como "asac".
10.
(5 puntos) Para el formulario de la pregunta 9, escribe el
contenido del archivo PHP que recibe los datos del usuario, y los
despliega en pantalla.
11. (5 puntos) Escribe el cdigo PHP que permite desplegar un
tringulo hecho de smbolos # en la pantalla. Supn que la altura de la
pirmide es ingresada por el usuario en un formulario.
En este
formulario, el nombre del campo de texto donde se ingresa la altura se
llama Altura. Por ejemplo, para una Altura de 4, se debe desplegar el
siguiente tringulo:
#
###
#####
#######
12. (5 puntos) Ya vimos que un CAPTCHA permite verificar si la
respuesta a un formulario proviene o no de un humano. Una forma
sencilla de hacer esa verificacin es preguntar la respuesta de una
operacin matemtica. Escribe la funcin captcha() en cdigo PHP que:
- crea una operacin matemtica al azar, escogiendo de manera
aleatoria dos nmeros entre 1 y 10 y uno de los 4 operadores
aritmticos (+ - / *) .
- muestra la operacin en pantalla junto con un cuadro de texto para
ingresar la respuesta.

MySQL (15 puntos)

La siguiente tabla, llamada Paciente, almacena los datos de contacto de


las personas inscritas en un servicio de salud de la 5ta Regin. A
continuacin se muestra un ejemplo con los primeros 4 registros de la
tabla:
ID
1
2

Nombre
Elosa
Juan

Apellido
Muoz
Ortega

Direccion
Las Lilas 345
Av. Matta 120

3
4

Rafael
Juan

Medina
Ortega

Mara

Vliz

Baquedano 28
Lautaro Rosas
25
Edwards 1240

Ciudad
Quilpu
Via del
Mar
Quilpu
Valparaso

Ao
1965
1942

Valparaso

1953

1950
1948

13. (3 puntos) Escriba la consulta SQL que permite ingresar los datos
del paciente Ricardo Bustamante, domiciliado en Av. Portales 134,
Valparaso, nacido el ao 1939.
14. (3 puntos) Escriba la consulta SQL que permite listar los datos de
las personas que viven en Quilpu.
15. (3 puntos) Con la inminente llegada del invierno, el servicio de
salud de la zona Valparaso necesita saber quines tienes 65 o ms
aos, para citarlos a vacunacin contra la influenza. Escriba la consulta
SQL que permite listar, en orden alfabtico de apellido a las personas
que el ao 2016 cumplen 65 o ms aos y que viven en Valparaso.
16. (3 puntos) Un de las personas de nombre Juan Ortega se mud
desde Av. Matta 120 a Av. Amalia Paz 123, Valparaso. Escriba la consulta
SQL que permite actualizar la direccin de ese Juan Ortega. Para tu
consulta, supn que ya se tiene el ID de la persona.
17 (3 puntos) Mara Vliz se mud a Santiago, por lo que ya no
pertenece al grupo de personas atendidas por el servicio de salud de la
5ta Regin. Escribe la consulta SQL que elimina el registro de Mara
Vliz. Para tu consulta, supn que ya se tiene el ID de la persona.

Potrebbero piacerti anche