Está en la página 1de 30

Manual Programacin C#.

NET Visual Studio 2010 2012

TODOS LOS LOGOS E IMGENES EMPLEADOS EN ESTE MANUAL, SE HAN


UTILIZADO SOLAMENTE CON EL PROPSITO EDUCATIVO, ES DECIR, ILUSTRAR A
LOS ESTUDIANTES EN EL PROCESO ENSEANZA APRENDIZAJE. PERTENECEN
A SUS RESPECTIVAS EMPRESAS Y COMPAAS LOS DERECHOS DE AUTORES
(COPYRIGHT,) SON PROPIOS DE SU EMPRESAS.

1
Manual Programacin C#.NET Visual Studio 2010 2012
CAPTULO III. INTRODUCCIN A BASE DE DATOS Y ADO.NET
3.1 Medios de conexin a base de datos desde C#.net
3.2 Funcionamiento de los enlaces de datos
3.3 Modelo de objetos con ADO.NET
3.4 Programacin con ADO. NET
3.5 Datagridview y DataTable
3.6 Uso de un Dataset para leer y escribir XML

2
Manual Programacin C#.NET Visual Studio 2010 2012
CAPTULO III. INTRODUCCIN A BASE DE DATOS Y ADO.NET

3.0. Introduccin a las bases de Datos Relacionales con SQL Sever 2008.

Microsoft Sync Framework es una completa plataforma de sincronizacin que habilita la


colaboracin y el acceso sin conexin para las aplicaciones, servicios y dispositivos.
Ofrece tecnologas y herramientas que habilitan la movilidad, el uso compartido y la
capacidad necesaria para poner los datos fuera de conexin. Mediante Sync Framework,
los programadores pueden generar ecosistemas de sincronizacin que integran cualquier
aplicacin con cualquier dato de cualquier almacn que use un protocolo a travs de una
red.

Sync Framework est formado por las siguientes tecnologas, las tres primeras se pueden
instalar con SQL Server 2008:
Sync Services for ADO.NET se puede utilizar para sincronizar bases de datos en
escenarios sin conexin y de colaboracin.
Sync Services for ADO.NET puede utilizar los componentes bsicos de Sync
Framework con el fin de sincronizar las bases de datos y tambin se pueden utilizar
para crear proveedores de sincronizacin para otros tipos de almacenes de datos.
Sync Services para FeedSync se puede utilizar para sincronizar fuentes RSS y
Atom con los datos de un almacn local.
Sync Services for File Systems se puede utilizar para sincronizar los archivos y
carpetas en un sistema de archivos.
Metadata Storage Service se puede utilizar para almacenar los metadatos de
sincronizacin en SQL Server Compact 3.5.
El resto de este tema proporciona informacin general de Sync Services for
ADO.NET e incluye una comparacin con otras tecnologas de Microsoft.

3
Manual Programacin C#.NET Visual Studio 2010 2012
Aplicaciones conectadas ocasionalmente
Una alternativa a la solucin que se ha descrito en la seccin anterior es implementar una
aplicacin conectada ocasionalmente. Una aplicacin que se conecta de vez en cuando
permite a un trabajador remoto continuar teniendo acceso a los datos. Sin embargo, a
diferencia del escenario anterior en el que el usuario deba tener acceso directamente a la
base de datos corporativa para obtener la informacin que deseaba, esta se almacena de
forma local en un dispositivo. Para rellenar una base de datos local, una aplicacin
conectada ocasionalmente suele usar la sincronizacin de datos.

La sincronizacin de datos consiste en la capacidad de tomar peridicamente la


informacin que est almacenada en una base de datos cliente (como SQL Server
Compact 3.5) y sincronizar los cambios con una base de datos servidor (como SQL
Server). Una solucin basada en la sincronizacin proporciona la ventaja de que un
usuario ya no tiene que disponer de una conexin de red constante para obtener acceso a
la informacin. Dado que los datos estn almacenados localmente, un usuario tiene
acceso constante a los mismos mientras el procesamiento se descarga de la base de
datos central. Adems, dado que la velocidad de la red ya no es un factor limitador, ahora
un usuario puede obtener acceso a los datos a la velocidad del dispositivo.

Synchonization Services for ADO.NET

Sync Services for ADO.NET habilita la


sincronizacin entre las bases de datos.
Proporciona una API intuitiva y flexible que le
permite generar aplicaciones destinadas a
escenarios sin conexin y de colaboracin. Sync
Services for ADO.NET habilita la sincronizacin
entre dos elementos del mismo nivel, por
ejemplo entre bases de datos de SQL Server o
entre una base de datos cliente de SQL Server
Compact 3.5 y cualquier base de datos servidor
para las que se disponga de un proveedor
ADO.NET. La API le permite utilizar todos los
componentes que se proporcionan o slo
algunos, dependiendo de la arquitectura y los
requisitos de una aplicacin.

Las ilustraciones siguientes muestran ejemplos


de aplicaciones que estn conectadas
ocasionalmente en las que los datos
(representados por una base de datos verde) se conservan de forma local en el dispositivo
de un trabajador remoto. El primer ejemplo muestra un sistema de base de datos
independiente en el que la informacin se almacena directamente en el dispositivo del
usuario. El segundo ejemplo muestra una oficina remota en la que la informacin se
almacena en una base de datos de grupo de trabajo dentro de esta oficina remota, para
que varios trabajadores locales puedan tener acceso a los datos.

4
Manual Programacin C#.NET Visual Studio 2010 2012
Una extensin comn de este tipo de aplicacin conectada ocasionalmente es la
capacidad de admitir escenarios de colaboracin. Se trata de escenarios en los que dos
bases de datos se pueden sincronizar punto a punto sin tener que pasar por un
concentrador central. Como se muestra en la ilustracin siguiente, una base de datos
remota puede intercambiar informacin con cualquier otra.

Este tipo de solucin es til cuando trabajadores remotos (por ejemplo, auditores
financieros in situ) trabajan en grupo en una ubicacin remota. Estos trabajadores deben
compartir a menudo informacin entre s. Sin embargo, dado que no tienen conectividad
con la base de datos central, deben compartir la informacin a travs de algn tipo de red
punto a punto

Usar Synchonization Services for ADO.NET con SQL Server

Sync Services for ADO.NET admite bases de datos de las maneras siguientes:
En escenarios sin conexin, la base de datos cliente debe ser de la versin 3.5 de SQL
Server Compact 3.5 o posteriores. El servidor puede ser cualquier base de datos para la
que se disponga de un proveedor ADO.NET. En escenarios de colaboracin, cada base
de datos del mismo nivel debe ser de SQL Server 2000 Service Pack 4 o una versin
posterior.

SQL Server es una base de datos de clase


empresarial que proporciona un base slida
para las aplicaciones que requieren
sincronizacin. SQL Server 2008 proporciona el
seguimiento de cambios, una de las
caractersticas ms tiles para los
programadores de sincronizacin. Sync
Services for ADO.NET ofrece una API para
sincronizar los cambios pero, en realidad, no
realiza el seguimiento de los cambios en el
servidor ni en la base de datos del mismo nivel.
((SQL Server Compact 3.5 realiza el
seguimiento de los cambios en la base de datos
cliente). Puede crear un sistema de seguimiento
de cambios personalizado, pero esto suele
introducir una complejidad significativa y
sobrecarga en el rendimiento. Recomendamos
usar el seguimiento de cambios de SQL Server
2008, porque resulta fcil de configurar y su
rendimiento es elevado

Comparar Synchonization Services for ADO.NET con otras tecnologas


Microsoft proporciona varias tecnologas que estn diseadas para las aplicaciones que
realizan la sincronizacin. Por consiguiente, comparar Sync Services for ADO.NET con
otras tecnologas que se utilizan en escenarios sin conexin y de colaboracin resulta de
utilidad.
5
Manual Programacin C#.NET Visual Studio 2010 2012
Sincronizacin sin conexin
Las tecnologas ms importantes de Microsoft para la sincronizacin sin conexin son las
siguientes:

Acceso a datos remotos (RDA). Se utiliza para sincronizar una base de datos de SQL
Server Compact 3.5 con una base de datos de otra edicin de SQL Server.

Replicacin de mezcla. Se utiliza para sincronizar ediciones diferentes de SQL Server,


incluido SQL Server Compact 3.5.

Sincronizacin de colaboracin

La tecnologa ms significativa para realizar la comparacin en lo que se refiere a la


sincronizacin de colaboracin es la replicacin transaccional punto a punto, que se utiliza
para sincronizar dos o ms bases de datos de SQL Server Enterprise. Tanto Sync
Services for ADO.NET como la replicacin transaccional admiten la sincronizacin punto a
punto: la replicacin transaccional es ms adecuada para mantener una alta disponibilidad
y escalar la actividad de lectura a travs de varios servidores, mientras que Sync Services
for ADO.NET es ms conveniente para las aplicaciones en las que los usuarios trabajan
en colaboracin con los mismos datos.

La tabla siguiente puede ayudarle a determinar qu tecnologa es apropiada para las


aplicaciones que desea generar.

Determinar el tipo de tecnologa que se debe utilizar

Sync Services for ADO.NET proporciona la flexibilidad de un modelo de programacin,


como son los conjuntos de datos sin conexin, y un conjunto de caractersticas de
sincronizacin ms variadas, como las que se encuentran en la replicacin. La
funcionalidad de Sync Services for ADO.NET es superior a RDA. La replicacin est
destinada a los administradores de bases de datos y se ha diseado principalmente para
sincronizar las bases de datos de SQL Server.

La replicacin proporciona una funcionalidad significativa cuya configuracin se puede


realizar a travs de asistentes, procedimientos almacenados y su propia API. Sync
Services for ADO.NET est destinada a los programadores y admite bases de datos
heterogneas y la sincronizacin a travs de servicios, como Windows Communication
Foundation (WCF).

6
Manual Programacin C#.NET Visual Studio 2010 2012
Pasos para crear una base de datos

1. Hacer un clic derecho encima de la opcin DataBases de Bases de Datos.


2. Seleccionar del men emergente la opcin New DataBases y hacer clic
3. Digitar el nombre de la base de datos, claro si no desea modificar algunos
parmetros, eje: RIDO.

Pasos en Grficos.

1. Seleccionar Database y luego New Database, para una nueva base de datos.

Clic aqu para crear una


nueva base de datos.

2. Digitar el nombre de la base de datos y dejar los parmetros por defecto.

Eje: RIDO

7
Manual Programacin C#.NET Visual Studio 2010 2012

Introducir aqu el
nombre de la base de
datos, Eje: RIDO

Pantalla ejecutado al creacin de la nueva base de datos

Ejecutando..

8
Manual Programacin C#.NET Visual Studio 2010 2012
Base de datos RIDO ya creada.

Base de Datos
Creada. RIDO

Trabajando con Tablas.

Pasos para crear una tabla.

Nota: Las tablas tienen propiedades que las diferencias de las vistas o consultas, aunque
podemos manejar la filosofa de una tabla como una vista. El uso de las tablas es
genrico, es decir, tiene la misma filosofa que en cualquier lenguaje de Administracin de
Bases de Datos con u otro gestor de bases de datos

Pasos para crear una tabla:

1. Hacer clic en la Opcin Table de la parte derecha de la ventana del Enterprise


Manager
2. Seleccionar New Table, para una nueva tabla.
3. Digitar el Nombre de la tabla, eje: ESTUDIANTES
4. Presionar Enter o hacer clic

9
Manual Programacin C#.NET Visual Studio 2010 2012

Digitar la estructura de la tabla, como se ve en la siguiente figura

Estructura de la Tabla:

MATRICULA char 20
NOMBRE char 40
APELLIDO char 40
DIRECCION char 60
TELEFONO char 13

Pantalla para crear la tabla

Clic Primero en Table y


luego en New Table

Nota: Una tabla es como si estuvisemos trabajando en uan hoja de clculo de Excel, es
decir, tendr un conjunto de filas y columnas, en donde las columnas representarn cada
campo y las filas los registros de la misma.

10
Manual Programacin C#.NET Visual Studio 2010 2012

Pantalla para crear la estructura de la tabla.

Proceder a digitar la estructura de la tabla, como se visualiz en la siguiente figura.

Clic en este icono para guardar la


configuracin y colocarle el
nombre de estudiantes

11
Manual Programacin C#.NET Visual Studio 2010 2012
Por ltimo, grabar la estructura de la tabla y asignarle el nombre de ESTUDIANTES, un
ejemplo, usted podr asignarle el nombre que desee.

Listo. A continuacin imgenes de que la tabla fue creada.

Tabla Estudiantes

12
Manual Programacin C#.NET Visual Studio 2010 2012
Introduccin Datos en la Tabla Creada.

Pasos para introducir datos en la nueva tabla


1. Hacer clic derecho encima del nombre de la tabla de ESTUDIANTES en la parte
derecha de la ventana del Enterprise manager.
2. Seleccionar Open Table (abrir tabla)
3. Introducir los Datos

Introducir los datos


en estas filas

13
Manual Programacin C#.NET Visual Studio 2010 2012
Tabal con los datos introducidos.

Tabla ya Procesada.

12-0001 LUIS MANUEL CRUZ 809-221-3222


12-0002 BETZABEL CRUZ 809-564-4141
12-0003 LUIS EMIL EMIL 809-564-8989
12-0004 SAMUEL ELIAN CRUZ MATEO 809-221-4747
12-0005 CAMIL ALBURQUERQUE 809-731-3222
12-0006 CRISMER CRUZ 809-456-7878
12-0007 GEORGE LUIS CRUZ 809-123-1515
12-0008 BETSI CRUZ 809-1515

3.1 Medios de conexin a base de datos desde C#.net


Existen diferentes Espacios de Nombres y objetos para trabajar con las bases de Datos
desde C#.Net y ellos son los siguientes:

System.Data, para trabajar con las bases de datos


System.Data.OleDb y System.Data.SqlClient, Contienen clases para acceder al origen
de datos
SqlConecction, representa una conexin a un origen de datos
SqlCommand, representa un comando que se le puede dar a travs de SQL Server
La Clase DataTable, representa una tabla en la base de datos
DataRow es una coleccin de objetos que contienen las filas de una tabla especfica
Las conexiones que utilizan los objetos ADO.NET son sin conexin, a diferencia de los
dems que son permanentes, esto se logra a travs de un DataSet que consta de un

14
Manual Programacin C#.NET Visual Studio 2010 2012
conjunto de objetos DataTabley de las relaciones entre ellos que se representa en una
cache.

Una ventaja del DataSet es que trabaja sin conexin a la base de datos, en vez de
concertarse persistentemente, se conecta al origen de datos y trata de poblar el Objeto
data Set.

3.2 Funcionamiento de los enlaces de datos

La tcnica a travs del cual se conectan los controles del GUI del C#.NET con los
orgenes de datos se conoce como enlace de datos. El IDE permite que los controles tales
como DataGridView se enlacen a un origen de datos como un objeto DataSet, que
representa a una tabla en con origen e datos.

De igual forma se pueden conectar otros controles con los orgenes del DataSet

3.3 Modelo de objetos con ADO.NET


El modelo de objetos ADO.NET proporciona un API para acceder a los sistemas de bases
de datos mediante la programacin desde C#.NET.

ADO.Net se creo para que el Framework .Net sustituya a la tecnologa ActiveX Data
Objetos (ADO) de Microsoft. El IDE cuenta con herramientas de programacin que
simplifican el proceso de utiliza una base de datos en sus proyectos.

3.4 Programacin con ADO. NET

En este apartado mostraremos como conectarnos a una base de datos y realizar consultas
y expandir los datos en una grilla (DataGridView)

Pasos para realizar el proceso:

1.- Crear el Proyecto

15
Manual Programacin C#.NET Visual Studio 2010 2012
2-. Agregar un origen e datos al proyecto

2.1.- Clic en Nuevo Origen de Datos

16
Manual Programacin C#.NET Visual Studio 2010 2012
3-. Seleccionar el tipo de origen de datos que se va a agregar al proyecto, en este caso
una base de datos

4-. Agregar una nueva conexin de bases de datos

17
Manual Programacin C#.NET Visual Studio 2010 2012

5.- Seleccionar el tipo de conexin

5.1.- Seleccionar el motor, en este caso SQL Server

18
Manual Programacin C#.NET Visual Studio 2010 2012
5.2.- Seleccionar el nombre del servidor,

5.3.- Verificar la conexin haciendo clic en Test Connection

19
Manual Programacin C#.NET Visual Studio 2010 2012
6-. Seleccionar el nombre de la tabla, en este caso Unnatec

6.1.- Hacer clic en Next

20
Manual Programacin C#.NET Visual Studio 2010 2012
6.2.- Hacer clic en next para salvar la conexin

7-. Clic en Finsh para finalizar el proceso

21
Manual Programacin C#.NET Visual Studio 2010 2012
9-. Seleccionar la tabla o tablas y vistas

Como se ve en la siguiente seleccin a de la tabal estudiantes

22
Manual Programacin C#.NET Visual Studio 2010 2012
3.5 Datagridview y DataTable

Para colocar un DataGriView, hay que arrastrar el control hacia le formulario y colocarle en
la propiedad DataSource el nombre del objeto del DataSet, Estudiantes

Los datos solamente se visualizan en tiempo de ejecucin, como se ve a continuacin:

23
Manual Programacin C#.NET Visual Studio 2010 2012
Elementos que se colocan en el proyecto al arrastrar el DatSet

Elementos seleccionados

24
Manual Programacin C#.NET Visual Studio 2010 2012
Cdigo Fuente generado al insertar los elementos

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void estudiantesBindingNavigatorSaveItem_Click(object sender, EventArgs e)


{
this.Validate();
this.estudiantesBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.uNNATECDataSet);

private void Form1_Load(object sender, EventArgs e)


{
// TODO: This line of code loads data into the 'uNNATECDataSet.Estudiantes'
table. You can move, or remove it, as needed.
this.estudiantesTableAdapter.Fill(this.uNNATECDataSet.Estudiantes);

}
}
}

Insertar BinDinNavigator.

Nos permite recorrer los registros de una tabla a travs de la visualizacin en el proyecto

25
Manual Programacin C#.NET Visual Studio 2010 2012
Compendio de Prcticas

Pantalla de Captura de la Aplicacin

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration; //Agregue esta referencia

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private OleDbConnection conexion;
private OleDbCommand comando;
private OleDbDataReader lector;
private String consulta;
private String cadena;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)


{
//utilizo esta variable y recupero la cadena de configuracion gracias
//a la referencia using System.Configuration; esta para poder utilizar
//app.config el archivo de configuracion que se puede adicionar al proyecto o
//con el asistente de conexion de base de datos
cadena =
ConfigurationManager.ConnectionStrings["ClinicaConnectionString"].ToString();
26
Manual Programacin C#.NET Visual Studio 2010 2012
try
{
//Creamos el objeto de conexion con su cadena respectiva
conexion = new OleDbConnection(cadena);
//Verificamos el estado de la conexion
if (conexion.State == ConnectionState.Closed)
conexion.Open();
}
catch (Exception ex)
{
MessageBox.Show("Imposible conectarse a la DB.
Error:"+ex.Message.ToString());
}
btnGuardar.Enabled = false;
}

private void txtIdentidad_Leave(object sender, EventArgs e)


{

try
{
//Creamos una consulta basica para determinar si ya existe la identidad
//tomando como dato el valor de la caja txtIdentidad
consulta = "select * from Clientes where identidad=";
consulta += "\"" + txtIdentidad.Text.Trim() + "\"";
//Creamos el comando y pasamos la cadena sql
comando = new OleDbCommand(consulta, conexion);
lector = comando.ExecuteReader();
//Determinamos si hay registros devueltos en el DataReader
if (lector.HasRows)
{
MessageBox.Show("Cliente ya existe!");
txtIdentidad.Focus();
txtIdentidad.Clear();
}
else
btnGuardar.Enabled = true;
lector.Dispose();
comando.Dispose();
}
catch (Exception ex) { MessageBox.Show("Imposible crear consulta. Error:" +
ex.Message.ToString()); }
}

private void btnGuardar_Click(object sender, EventArgs e)


{
if ((txtIdentidad.Text != "") && (txtNombres.Text != "") && (txtApellidos.Text != ""))
27
Manual Programacin C#.NET Visual Studio 2010 2012
{
try
{
//Creamos el query insert para adicionar el registro
consulta = "insert into clientes(identidad,nombres,apellidos) values(";
consulta += "\"" + txtIdentidad.Text.Trim() + "\",\"" + txtNombres.Text.Trim() +
"\",\"";
consulta += txtApellidos.Text.Trim() + "\")";
comando = new OleDbCommand(consulta, conexion);
comando.ExecuteNonQuery();
MessageBox.Show("Registro Almacenado con Exito");
txtIdentidad.Focus();
txtIdentidad.Clear();
txtNombres.Clear();
txtApellidos.Clear();
btnGuardar.Enabled = false;
}
catch (Exception ex)
{
MessageBox.Show("Imposible crear consulta. Error:" +
ex.Message.ToString());
}
}
else
{
MessageBox.Show("Debes llenar todos los campos!");
txtIdentidad.Focus();
}
}

private void btnSalir_Click(object sender, EventArgs e)


{
this.Close();
}

private void Form1_Leave(object sender, EventArgs e)


{
//Liberamos los objetos
conexion.Close();
conexion.Dispose();
}

private void btnMostrar_Click(object sender, EventArgs e)


{
//Mostramos el datagrid
frmDataGrid frm = new frmDataGrid();
frm.Show();
28
Manual Programacin C#.NET Visual Studio 2010 2012
}
}
}

Pantalla de la Aplicacin

29
Manual Programacin C#.NET Visual Studio 2010 2012
Ejercicios Propuestos:

REALIZAR LOS SIGUIENTES EJERCICIOS


1. Dado el sueldo bruto y los descuentos calcular el sueldo neto.
2. Dado el sueldo bruto de un empleado calcular los descuento y el sueldo neto. Si el
empleado gana menos o igual de RD$ 5,000.00, descontar un 3%, sino, descontar un 5%.
3. Dado un nmero verificar si es par o impar.
4. Imprimir los nmeros de 1 al 20
5. Imprimir los nmeros pares del 1 al 14. Utilizar el mdulo residuo.
6. Dado un nmero verificar si es primo o no. Un nmero es primo si es divisible por el
y la unidad solamente.
7. En un rango de edades, clasificados por letras, asignar el vehculo que le
corresponde a cada edad.
a. Entre 18-25 auto: honda
b. Entre 26-30 auto: porshe
c. Entre 31-40 auto: bmw
d. Entre 41-50 auto: mercedes benz
e. Entre 51-60 auto: jaguar
8. Dado 5 elementos en un arreglo, determinar si la suma de ellos es par o impar
9. Dado 8 elementos en un arreglo, ordenarlos en forma ascendente y cambiando un
signo en forma descendente.

REALIZAR LOS SIGUIENTES PROGRAMAS. SI TIENES QUE AUXILIARSE DEL


PROFESOR, HGALO, PERO DEBE REALIZAR TODOS ESTOS EJERCICIOS. DE
USTED DEPENDE SU AVANCE.

2. Pedro es estudiante activo de CENTU y paga RD$ 900.00 de mensualidad y el


costo del curso es RD$1,800.00. Cuanto debe pagar Pedro en el Primer mes de clase y
cul es el balance pendiente del curso.
3. Dado el monto de venta de un vendedor, eje: RD$ 50,000.00 calcular la comisin
por venta de dicho vendedor, la cual corresponde a un 10% del monto total vendido.
4. Dado tres nmeros hallar la suma de ellos.
5. Dado dos nmeros, determinar la multiplicacin de ellos.
6. Fui al supermercado y compr 3 libras de arroz a RD$ 15.00 cada una. Cuanto
pagu en la caja al momento del cuadre.
7. Si Samuel tie 2 carros comprados a RD$ 500.00 cada uno, cuanto le costaron los
dos carros.
8. Luis Manuel Cruz tom un prstamo en el Banco Popular de RD$ 10,000.00 a una
tasa de inters anual de 28%. Cuanto deber pagar Luis Manuel Cruz mensualmente si
decide pagarlo en un ao.
9. Cielo Reynoso tiene una librera y compra 20 libros a RD$ 100.00 para venderlos a
RD$ 115.00. Cuanto se ganar Cielo en la venta Total.
10. Dado dos nmeros hallar la divisin de ambos. Asumir que el segundo nunca ser
igual a cero.

30

También podría gustarte