Story not found! Please try again

Objetivos: 2, 4, 5, 7, 9, 10

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina Año Escolar: 2011-2012 Nombre y Apellido: Grado: 5to Informática. Cédula: Pru

3 downloads 217 Views 410KB Size

Recommend Stories


1%$ #2 23%$ #4 7 & # & % 8 + & & #(9 % ) ". & + & 2 $&!, +,$ & 9 & * +& +!
                              

& 0! 2! 5& 6! 9 % :7 75& %" :7 "% :7& # : ; #"
! " # $ %# & $ '( & ) # *+ ,. / & . ! 0 , *, & ) ! # 1 " #" " 2 23& 4 2 &! & 3 2 ! 5& 2 7 2 &! 6 ! , 2 ! 81 & % 9 7 5

ACTIVIDADES INICIALES. a) 2 3 ( 4) 5 (2 3 5) (6 5) b) 3 5 (2 3 3) (5 8) (4 2) 10 (3 4 2 ) 1
Solucionario 1 Números reales ACTIVIDADES INICIALES 1.I. Realiza las siguientes operaciones. a) 2  3  ( 4)  5  (2  3  5)  1 b) 3  5(23

!"#$ +,"!- (%&*#!" "!"!!,"#%"'"#"#.* !"! # $ $ % &$ ' 2 %"%!!"$"#"%! 3,+,"!"#! 4!5!(%"##!! "%#!"!"(%& ( #"!) 4!5!4%
5! ' + !"#$ ! " !#! , "! - + !" $ (% & * " %"% " & ' (% #! " " !" ! ! ," ! ! " "# ! ) # '" * " # % " ' "# " # .* " ! # $ $ % &$ ' /0

ÍNDICE INTRODUCCIÓN 1-2 HIPÓTESIS 3 OBJETIVOS 4 METODOLOGÍA 5 6 MARCO TEÓRICO 7 41
ÍNDICE INTRODUCCIÓN 1-2 HIPÓTESIS 3 OBJETIVOS 4 METODOLOGÍA 5–6 MARCO TEÓRICO 7 – 41 1. Conceptos y Teorías Culturales 7 - 16 1.1 La cult

Números Cardinales W = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,... } ("Whole Numbers")
A. CONJUNTOS NUMÉRICOS Números Naturales N = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, .... } Números Cardinales ("Whole Numbers") W = { 0, 1, 2, 3, 4,

+$-0 )(+1+! #! #+.#, +%! "#$%'! 7! - 8%.#%! (9 )%- #5# ##! %( 2(##((.. 1!! # 8+)+!
1 ! " # # ! %$' % ' % . ! % # " % ! #. * % / + $- 0 ) ( % +. ! # % 2 # " # ! 4 ! # + ' ! " # .5 & # # . 8 ' +)+ ( # - 2 !+ # & ! +

La Biblia (I) Autor: Introducción (1) (2) (3) (4) (5) (6) (7) (8) Escritura: (9)
La Biblia (I) Autor:Paulo Arieu Introducción La Biblia es la Palabra de Dios, aunque a muchos no les guste esto, o se le pongan los pelos de punta. Mu

&%0,1$%!)+!)+#2-%3! "-$%-'%!4,5)6!4%(%! 78!9:;7;!978!4;>?7!
! ! ! ! "#$%&'()*)!+)!,-$&,.)!*,+!/&%0,1$%!)+!)+#2-%3! "-$%-'%!4,5)6!4%(%! ! ! ! 78!9:;7;!978!4;>?7! 7*#)&*%!"+1)+*,!8)-1@)&&%! ! A*%3!BBBBBBBBBBBBBBB

Story Transcript

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

Objetivos: 2, 4, 5, 7, 9, 10 2.- Diseñar programas mediante el uso de algoritmos, diagramas de flujos y lenguajes de programación. Algoritmos. Características de un algoritmo. Pasos para resolver un problema. Ejercicio. Definición de Diagrama de Flujo. Símbolos utilizados en el diagrama de flujo. Ejercicios.

4.- Identificar la interfaz gráficas de visual Basic Express y su entorno como barras, explorador de proyectos, caja de herramientas, ventanas y formularios para el diseño de programas. Definición de Visual Basic. ¿A quién va dirigido visual Basic Express? Escritorio: Es el área blanca que sirve de “soporte” a los elementos que componen el entorno integrado de desarrollo. No confundir con el escritorio de Windows. Menú Principal: Es el listado de opciones que permiten desencadenar las distintas acciones permitidas por el IDE. Es muy similar al de otros programas Windows como Word o Excel, pero con posibilidades para crear o abrir proyectos, depurar archivos, ejecutar complementos entre muchas otras posibilidades. Barras de Herramientas: Contiene métodos abreviados para realizar distintas actividades referentes al desarrollo del proyecto. Su funcionamiento es muy similar al de otras aplicaciones Windows. Formulario: Es el principal objeto contenedor de Visual Basic donde se pueden “dibujar” las interfaces a modo de ventanas y que pueden contener otros objetos que tienen diversos comportamientos. Así como en Word existe el documento en blanco sobre el cual, el usuario comienza a escribir, en Visual Basic existe el formulario. Cuadro de Herramientas: Es una sección que aparece como una “pestaña” al lado izquierdo de la ventana principal del IDE. Al clickear sobre ella, se pueden observar una serie de iconos que representan “clases”, las cuales pueden crear objetos dentro del formulario. Se clasifican por categorías y abarcan desde etiquetas y cuadros de texto hasta objetos para acceso a datos. Orígenes de Datos: Es una sección que permite configurar la accesibilidad hacia bases de datos (por ejemplo, SQL Server). Abarca la creación de orígenes de datos, creación de bases de datos, tablas y demás elementos relacionados para utilizarlos dentro de la solución o proyecto. Explorador de soluciones: Proporciona una vista organizada de los proyectos y sus archivos, así como acceso rápido a los comandos relativos a ellos. Normalmente, una

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

barra de herramientas asociada a esta ventana ofrece los comandos que se utilizan con más frecuencia con el elemento resaltado en la lista. Ventana Propiedades: Utilice esta ventana para ver las propiedades de los elementos seleccionados. También puede utilizarla para ver las propiedades de archivos, proyectos y soluciones. Barra de Estado: Muestra el estado de la ejecución de un proceso o actividad dentro del entorno de trabajo. OBJETOS

Puntero: Permite activar la selección de objetos dentro del formulario. (Botón de comando) Su función es permitir al usuario desplegar un conjunto de acciones al clickear sobre él. Es muy común encontrar botones de comando como Aceptar o Cancelar. No permite el ingreso de datos por el usuario en tiempo de ejecución (Etiqueta) Inserta una etiqueta de texto que sirve para identificar otros objetos. No permite el ingreso de datos por el usuario en tiempo de ejecución.

(Cuadro combinado): Crea un cuadro combinado (textbox+listbox) en el cual, se puede escribir texto y seleccionar elementos de una lista. Presentan una flecha hacia abajo en la parte derecha del cuadro que al ser clickeada, muestra la lista. (Cuadro de lista) El cuadro de lista presenta un listado de elementos de los cuales se puede elegir uno o varios según se requiera, pero no permite escritura como en el caso del combobox. (Cuadro de texto y máscara) Es un cuadro de texto, pero con una máscara de entrada. Se puede utilizar para restringir el ingreso de ciertos caracteres (por ejemplo, una fecha en formato específico) u ocultar los caracteres ingresados mostrando otros (como una contraseña).

(Caja de dibujo): Permite la inserción de imágenes dentro de un formulario. Por ejemplo, una fotografía. Algunos formatos soportados son el bmp, jpg y png. (Cuadro de texto): Es el objeto primordial para ingreso de texto. Representa un recuadro donde el usuario puede ingresar un valor que se almacena como una cadena de caracteres.

(Botón de opción): Los Botones de opción se utilizan para crear conjuntos de opciones dentro de las cuales, sólo se podrá elegir una de ellas, siendo mutuamente excluyentes.

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

Por ejemplo, una persona no puede tener simultáneamente el sexo “Masculino” y “Femenino”. (Barra de progreso) Es una barra de progreso que permite mostrar el avance de un proceso en ejecución. Su uso es típico en los programas de instalación. 5.- Crear proyectos en Visual Basic Express utilizando los controles del cuadro de herramientas, menús, datos, propiedades, métodos y eventos. Paso para la creación de un nuevo proyecto. Cuadro de Herramientas. CONTROLES COMUNES. Puntero. BUTTON. CHECKBOX. CHECKEDLISTBOX. COMBO BOX DATETIMEPICKER. LABEL. LINKLABEL. LISTBOX LISTVIEW. MAESKEDTEXTBOX MONTHCALENDER. NOTIFYICON. NAMERICUPDOWN. PICTUREBOX. PROGRESSBARL. RADIO BUTTON. RICH TEXT BOX TEXTBOX. TOOLTIP. TREE VIEW. WEBBROWSER. B.- BARRA DE HERRAMIENTAS Y MENUS. CONTEXTMENU STRIP STATUSSTRIP MENUSTRIP. TOOLSTRIP. TOOLSTRIPCONTAINER. C.- DATOS. CHART. BRINDINGNAVIGATOR. BRINDINGSOURCE. DATAGRIDVIEW. DATASET.

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

Propiedades. BACKCOLOR. BACKGROUNDIMAGE. FONT. FORECOLOR. FORMBORDERSTYLE. TEXT. SHOWICON. ENABLED. DATABRINDINGS. NAME. AUTOSIZE. LOCKED. MAXIMUNSIZE. MINIMUNSIZE. SIZE. WINDOWSTATE. HELPBUTTON. ICON. ISMDICONTAINER. Eventos. Métodos.

7.- Desarrollar base de datos creando tablas y consultas en Microsoft Access y enlazándolas con el control data haciendo uso de las propiedades y métodos del Recordset

Pasos para crear menús. Deshabilitar o habilitar elementos de menú. Menús emergentes. Agregar notas a los programas: utilizar comentarios. Utilizar comentarios para depuración. Datos. ¿Qué es una base de datos? Definición de : Tablas. Campos. Registros. Clave Principal. Tipos de base de datos: Microsoft SQLSERVER. Microsoft Access. Objeto DATASET, TEXTBOX. Pasos para crear una base de datos. Pasos para crear una tabla.

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

Pasos para crear una clave. Pasos para crear datos. Pasos para crear formularios de acceso a daos. Agregar o modificar registros. 9.- Conocer los tipos de sistemas manejadores de base de datos, definición, importancia, arquitectura. Definición de Base de Datos. Definición de Sistema Manejador de Bases de datos (S.M.B.D) Importancia de Sistema Manejador de Bases de datos (S.M.B.D). Tipos de Sistema Manejador de Bases de datos (S.M.B.D). Arquitectura de Sistema Manejador de Bases de datos (S.M.B.D) 10.- Modelar las bases de datos relacionales, selección, proyección, diferencia, unión, operaciones de conjunto, operadores especiales, lenguaje de consulta estructurado, lenguaje de definición de datos y lenguaje de manipulación de datos. Definición de Modelo de Datos. Técnicas de Modelo de Datos. Modelo Conceptual. Modelo Lógico Basado en Objetos. Modelo Entidad Relación Modelo Basado en Registros. Modelo Relacional. Selección, Proyección. Diferencial. Unión. Operadores de Conjunto. Operadores Especiales. Definición SQL. Comandos SQL. Instrucciones DDL (Lenguaje de Definición de Datos): CREATE, DROP, ALTER. Instrucciones DML (Lenguaje de Manipulación de Datos): SELECT, INSERT, UPDATE, DELETE. Cláusulas de SQL: FROM, WHERE, GROUP BY, HAVING, ORDER BY Operadores Lógico en SQL: AND, OR, NOT. Operadores de Comparación: =, =, , BETWEEN, LIKE, IN. Tipos de Datos: BINARY, BIT, BYTE, COUNTER, CURRENCY, DATETIME, GUID, SINGLE, DOUBLE, SHORT, LONG, LONGTEXT, LONGBINARY, TEXT.

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

LINK MATERIAL DE AYUDA http://www.aulaclic.es/access2002/a_5_1_2.htm Link TIPOS DE DATOS EN MICROSOFT ACCESS. http://office.microsoft.com/es-hn/access-help/introduccion-a-los-tipos-de-datos-ylas-propiedades-de-los-campos-HA010341783.aspx

EJERCICIOS PRACTICOS

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

DIAGRAMA ENTIDAD- RELACION 1. Ejercicio Crear un diseño entidad relación que permita controlar el sistema de información de una academia de cursos siguiendo estas premisas: • Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el CI, dirección, nombre, teléfono y la edad • Además de los que trabajan necesitamos saber el rif, nombre, teléfono y dirección de la empresa en la que trabajan • Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el programa del curso, las horas de duración del mismo, el título y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: C.I, nombre, apellidos, dirección y teléfono • Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos y en cada cual obtendrá una nota. 2. Ejercicio Crear un diseño entidad relación que permita almacenar datos geográficos referidos a Venezuela: • Se almacenará el nombre y población de cada localidad, junto con su nombre y los datos del Estado a la que pertenece la localidad, su nombre, población y superficie. • Necesitamos también conocer los datos de cada comunidad, nombre, población y superficie y por supuesto las localidades y estados de la misma • Para identificar al estado se usarán los dos primeros dígitos del código postal. • Necesitamos saber qué localidad es la capital de cada estado y cuáles lo son de cada comunidad. • Necesitaremos saber la cantidad de piezas que tenemos en cada almacén y saber en qué estanterías están las piezas buscadas 3.- Ejercicio El Instituto Nacional de Parques (INP) desea automatizar el control y manejo de los Zoológicos de los cuales se conoce su nombre, ubicación, horario y presupuesto disponible. Del zoológico es importante conocer la cantidad de especies diferentes que posee. En un zoológico laboran un conjunto de empleados de los cuales se tiene su ci, nombre, dirección, teléfono y fecha de ingreso. Dependiendo del tipo de empleado se tendrá que saber, si es administrativo ó si es obrero. Cada Zoológico tiene un director el cual es un empleado, y de el dependen (Supervisa) un conjunto de empleados (administrativos y obreros). Se tiene también información de los animales en cautiverio en los distintos zoológicos, de los cuales se conoce: nombre, especie (felino, canino, etc.), fecha de nacimiento, origen y dieta asignada así como la fecha en la que fue llevado al

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

zoológico, se requiere también información sobre la familia a la cual pertenece (mamífero, anfibio, batracio, etc.). Adicionalmente cada zoológico posee un conjunto de áreas de esparcimiento (parques con columpios, lagos ,botes de remos, pistas de trote ,áreas verdes, jardines ,etc), de las cuales se requiere almacenar información referente a su extensión en Mts2, y una breve descripción . Los empleados sólo laboran en un Zoológico

Para la definición del problema anterior realice las siguientes tareas: • Identifique en el sistema las diversas entidades y las relaciones entre ellas. • Identifique los atributos para cada una de las entidades y señale cuales son claves. • Construya un diagrama ER

BASE DE DATOS 1.

Ejercicio Se trata de crear una base de datos sobre un almacén de piezas de modo que:

• Cada pieza se identifica con dos letras (tipo, por ejemplo TU=tuerca) y un número (modelo, por ejemplo 6) • Almacenamos un atributo que permite saber la descripción de cada tipo de pieza. Es decir el tipo TU tendrá la descripción tuerca. •

Necesitamos conocer el precio al que vendemos cada pieza.

• Además hay piezas que se componen de otras piezas, por ejemplo una puerta se compone de una hoja de madera, una bisagra y un picaporte. Incluso una pieza puede estar compuesta de otras piezas que ha su vez pueden estar compuestas por otras y así sucesivamente • Tenemos una serie de almacenes de los que guardamos su número, descripción, dirección y el nombre de cada estantería de almacén. Cada estantería se identifica por tres letras.

2.- Ejercicio, Agregar una Tabla Clientes: la cual contenga los siguientes campos: cedula, nombre, apellido, dirección, teléfono. Agregarle cinco registros a la tabla clientes. Insertar un campo llamado dirección, entre apellido y teléfono. Agregarle a la tabla clientes la clave principal.

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

Relaciones: facturas - clientes, facturas -productos. Campos pueden ser de diferentes títulos. Registros las unidades significativas. Tablas en vista de diseño se pueden : agregar o renombrar campos, establecer el tipo de datode un campo y elegir una clave principal.

SQL. EJERCICIO 1 Sea la siguiente Base de Datos: VUELOS (nro-vuelo,desde,hasta) AVION-UTILIZADO(nro-vuelo,tipo-avión,nro-avión) INFO-PASAJEROS(nro-vuelo,dni,nombre,origen,destino)

Los vuelos no pueden tener más de dos escalas y no hay cambio de tipo de avión para un mismo número de vuelo. Realizar las siguientes consultas: • • • •

Listar los números de vuelo de A hasta F. Listar los tipos de avión que no son utilizados en ningún vuelo que pase por B. Listar los pasajeros y números de vuelo para aquellos pasajeros que viajan de A a D pasando por B. Listar los tipos de avión que son utilizados en todos los vuelos que pasan por C.

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido: Cédula:

Prueba de Revisión Algorítmica y Programación I.

EJERCICIO 2 Sea la siguiente Base de Datos:

Empleado(nro_empleado,nombre,domicilio,localidad,antigüedad) Funcion(nro_funcion,descripcion) Planta(nro_planta,descripcion,localidad) Tarea(nro_empleado, nro_funcion) Organización(nro_planta,nro_funcion) Trabaja(nro_empleado, nro_planta) Distancia(localidad1, localidad2,distancia)

Escribir la siguiente consulta: Listar los nombres de los empleados que viven más lejos de su lugar de trabajo.

EJERCICIO 3 Sea la siguiente Base de Datos:

Artículos(nro_art,descripcion,peso,precio_unit,fabricado_en) Facturas(nro_fact, nro_cli, fecha, fecha_venc) DetalleFactura(nro_fact,nro_art,cant) Clientes(nro_cli, nombre, domicilio, ciudad, País, Ocupación)

Expresar la siguiente consulta . Listar los nombres de los clientes que hayan comprado al menos 2 artículos distintos.

Grado: 5to Informática.

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

EJERCICIO 4 Sea la siguiente Base de Datos:

Personas(nro_doc, nombre, domicilio) Supervisa_a(nro_doc_supervisor,nro_doc_supervisado) Asumir que cada persona es supervisada a lo sumo por un supervisor.

Escribir la siguiente consulta: Listar los nombres de las personas que trabajan con Juan Perez (suponer que existe un único Juan Perez)

EJERCICIO 5 Sea la siguiente Base de Datos:

Empleados(nro_e, nombre, domicilio, ciudad) Asignado_a(nro_e, cod_tarea, cant_horas) Tareas(cod_tarea, desc_tarea)

Escribir en AR la siguiente consulta, sin utilizar operadores derivados: Listar los nombres de las personas asignadas a todas las tareas.

EJERCICIO 6 Para la siguiente base de datos:

ALUMNOS(nroLeg,nombre,domicilio,planDeEstudios) MATERIAS(nroMat,nombre,planDeEstudios) EXAMENES(nroLeg,nroMat,nota,fecha) CURSAN(nroLeg, nroMat) CORRELATIVA(nroMat,nroCorrelat)

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

Escribir la siguiente consulta: Listar los nombres de los alumnos que no cursan ninguna materia de la cual hayan rendido su correlativa al menos dos veces.

VISUAL BASIC. 1. Diseñar un programa mediante la herramienta VISUAL STUDIO 2010, que permita multiplicar 5 valores y mostrar el resultado en pantalla, realizando el modo de diseño del programa, propiedades de los controles y la ventana de codificación. 2. Diseñar un programa mediante la herramienta VISUAL STUDIO 2010, que permita calcular el promedio de seis calificaciones y mostrar el resultado en pantalla, realizando el modo de diseño del programa, propiedades de los controles y la ventana de codificación. 3. Diseñar un programa mediante la herramienta VISUAL STUDIO 2010, que permita restar dos valores y mostrar el resultado en pantalla, realizando el modo de diseño del programa, propiedades de los controles y la ventana de codificación.

ALGORITMOS Y DIAGRAMA DE FLUJO.

1.- Desarrolle un algoritmo que permita leer dos valores distintos, determinar cual de los dos valores es el mayor y escribirlo. 2.- Desarrolle un algoritmo que permita leer tres valores y almacenarlos en las variables A, B y C respectivamente. El algoritmo debe imprimir cual es el mayor y cual es el menor. Recuerde constatar que los tres valores introducidos por el teclado sean valores distintos. Presente un mensaje de alerta en caso de que se detecte la introducción de valores iguales. 3.- Desarrolle un algoritmo que realice la sumatoria de los números enteros comprendidos entre el 1 y el 10, es decir, 1 + 2 + 3 + …. + 10.

Asignatura: Algorítmica y Programación I. Docente: Ing. Yesika Medina

Año Escolar: 2011-2012 Nombre y Apellido:

Grado: 5to Informática.

Cédula: Prueba de Revisión Algorítmica y Programación I.

4.- Determinar la hipotenusa de un triángulo rectángulo conocidas las longitudes de sus dos catetos. Desarrolle el algoritmo correspondiente. 5.- Desarrolle un algoritmo que permita determinar el área y volumen de un cilindro dado su radio (R) y altura (H). 6.- Desarrolle un algoritmo que permita leer un valor cualquiera N y escriba si dicho número es par o impar. 7.- Desarrolle un algoritmo que permita leer dos números y ordenarlos de menor a mayor, si es el caso.

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.