jueves, 29 de noviembre de 2012

Clases (Programacion orientada a objetos)

Ultima Actulizacion
Bueno Empezemos con las clases, las primeras intruciones que se ejecutan son los metodos (funciones) de las clases, dentro de una clase puede haber contructores, funciones variables etc.
dentro de las clases todo debe ser publico, privado o reservado, segu lo que desee.
ejemplo:
class ejemplo
{
  public: void mensaje()
             {
                printf("loool");
             }
};

Los eccesos se ejecutan cuando se desea leer o escribir el valor de una propiedad.
el acceso para leer el valor de una propiedad es get, y el ecceso para modificar un valor viene marcado con set.
ejemplo:

class ejemplo
{
  private: int num1;
  public: int ejemplogs (int a)
            {
                get {return num1;}
                set {num1 = a;}
            }
};

int main (void)
{
   ejemplo llamar =:: ejemplo(); //  con esto se accede a los metodos publicos de la clase
   printf("%d",llamar.ejemplogs(250));
}

Un Ejemplo De Todo Esto Seria:

#include "stdafx.h"
#include "cstdlib"
#include "time.h"
#define COLUMNAS 4
#define FILAS 5
int array[COLUMNAS][FILAS];
int array_col[COLUMNAS];
int array_fil[FILAS];

class programa_7_20
{
public: void iniciar_bid()
        {
            int i, j;
            for (i = 0; j < COLUMNAS; i++)
            {
                for (j = 0; i < FILAS; j++)
                {
                    array[i][j] = 0;
                }
            }
        }
public: void lectura_ventas()
{
    int i, j;
    for (i = 0; i < COLUMNAS; i++)
    {
        for (j = 0; j < FILAS; j++)
        {
            printf("\nIngrese las ventas del Vendedor %d Producto %d:\t", i+1, j+1);
            array[i][j]= validar_num();
        }
    }
        }

public: void totalizar_columnas()
{
    int i, j;
    for (i = 0; i < COLUMNAS; i++)
    {
        array_col[i] = 0;
        for(j = 0; j < FILAS; j++)
        {
            array_col[i] += array[i][j];
            printf("Vendedor %d, total ventas:\t%d\n ", i+1, array_col[i]);
        }
    }
        }

public: void totalizar_filas()
{
    int i, j;
    for (j = 0; j < COLUMNAS; j++)
    {
        array_col[j] = 0;
        for(i = 0; i < FILAS; i++)
        {
            array_col[j] += array[i][j];
            printf("Producto %d, total ventas:\t%d\n ", j+1, array_col[j]);
        }
    }
        }
public: int validar_num ()
{
    int num;
    do{
        scanf("%d", &num);
    }while(num < 0);
    return num;
}

};
int _tmain(int argc, _TCHAR* argv[])
{
    programa_7_20 lol =:: programa_7_20();
    lol.iniciar_bid();
    lol.lectura_ventas();
    lol.totalizar_columnas();
    lol.totalizar_filas();
    system("Pause");
}

martes, 30 de octubre de 2012

Programacion Estructurada

Estructuras c++

Bueno, Comezemos con estruturas, este capitulo es muy facil ya que dominamos las funciones.
al definir una estructura para los datos, puede todo eso tener un mismo nombre, con una estructura se facilita el manejo de variables, las estruturas pueden contener todo tipo de variables, int, float, char, etc.
las estruturas, tambien contener otras estruturas, y heredar atributos, y sobrecargar sus metodos.
como se declara una estrutura:

struct nombre
{
aqui va todo lo que quieras meterle
todo lo que quieres ingresarlo debe ser publico para poder ingresar en el.
}

ejemplo:
strucct mensaje
{
    public string nombre ()
   {
      return "jose arturo";
   } 
   public numero1;
}
 para llamarlo en el programa normal seria:

int main (void)
{
   mensaje lol = new mensaje;
   lol.nombre();
   lol.numero = 100;
}

domingo, 14 de octubre de 2012

Funciones en c++

Funciones

Bueno en esta semana se vio lo que son las funciones: Los tipos de funciones en c++ son 4.
Una función, como les decía, puede hacer (o no) dos cosas: 1 – Recibir datos y 2 – Retornar datos. De esto surgen los cuatro tipos de funciones:
  1. No reciben ni retornan
  2. Reciben y no retornan
  3. No reciben y retornan
  4. Reciben y retornan
un ejemplo sencillo de uno seria 
#include <cstdio>
//aqui hago la funcion//
int suma (int num1, int num2)//aqui le doy los valores que quiero que resiva y utilize
{
   int resultado;//se puede declarar dentro de la funcion cosas
   resultado = num1 + num2; //operacion
   return resultad; //aqui retornara el resultado de la suma, podria decirse que es el resultado de la funcion
}
//programa normal
int main ()
{
  int num1 = 10 , num2 = 20 , r;
  r = suma(num1,num2); // aqui llamo ala funcion suma y le doy valores que va a utilizar en su funcion y el resultado alamcenado lo guardo en r
  printf("resultado es",r);

return 0;
}

bueno en si eso es una funcion, con esto se podrian hacer grandes cosas inimaginables.

lunes, 24 de septiembre de 2012

Semana 5

Ciclos de repeticion

Los ciclos son mas que simples estruturas de repeticion basados, para repetir acciones, en el programa.
todos los ciclos, deben contar con una variable llamada contador, e incremento.
hay 3 tipos de ciclos
1.- for
2.- while
3.- do while
su estruturas son:

FOR

for( int contador = 0; contador <=10; contador++)
{
//contador = 0 <--- con esto el for comienza a contar desdeel numero que le asgnemos.
//contador <=10 <--- este el limite que debe llegar el contador
// contador, ++ <-- aqui incrementamos de 1 en 1 el contador
   printf("%d\n",contador); // aqui vapresentar el incremento del contador y terminara cuando contador sea //igual menor a 10
}

While

int conador = 1; con esto el while comienza a contar desde el numero que le asignemos
while (conador <=10) //este el limite que debe llegar el contador
{
   printf("%d\n",contador);
  contador++; <-- aqui incrementamos de 1 en 1 el contador
}

Do - While

int contador = 1; con esto el ciclo do-while comienza a contar desde el numero que le asignemos
do{// se declara el do (hacer)

 printf("%d\n",contador);
 contador++; <-- aqui incrementamos de 1 en 1 el contador
}while(contador <= 10)  //este el limite que debe llegar el contador (hasta)

Un ejemplo:


sábado, 15 de septiembre de 2012

Semana 4

Resumen semanal 4



Lo que se vio en la semana fue sobre las pruebas de escritorio, diagramas de flujo, psudocodigo y metadologias:
esto nos ayuda aplicarlo en el lenguaje de programacion c/c++
aqui unos ejemplos de ello
#include <cstdio> --- esto es una bliblioteca, aqui se encuntra los comandos que se utilizaran en el codigo
hay varias blbliotecas a las que nos podemos apoyar para hacer diferentes funciones en el programa
int main (void)
{
// esto es la estructura del programa en si.
con los tipos de datos se completa el programa.
Un eemplo sencillo de ello podria ser este:
 /*Un obrero necesita calcular su salario semanal,
el cual se obtiene de la siguiente forma:
Si trabaja 40 horas o menos se le paga $16 por hora.
Si trabaja mas de 40 horas se le paga $16 por cada una
de las primeras 40 horas y $20 por cada hora extra.*/
#include "iostream";
#include "cstdio";
#include "conio.h";
#include <cstdlib>

int main(void)
{
    system ("color 0A");
    int horas, resul, extra, res_extra ;
    printf("16$ por hora\n");
    printf("20 horas extra\n");
    printf("Cuantas horas trabaja?: ");
    scanf("%d",&horas);
    if(horas >= 40)
    {
             printf("Has trabajado mas de 40hrs\n");
             resul = 40*16;
             extra = horas - 40;
             res_extra = extra *20;
             resul = resul + res_extra;
             printf("Se te Pagara %d $",resul);
           
           
    }else
    {
          printf("Has menos de 40hrs\n");
          resul = 40*16;
          printf("Se te Pagara %d $",resul);
    }
    getch();
}

su pseudocodigo seria:
Proceso cuatro
    horas <-0;
    resul<-0;
    extra<-0;
    res_extra <-0;
    Escribir "16$ por hora";
    Escribir "20 horas extra";
    Escribir "Cuantas horas trabaja?: ";
    Leer horas;
    Si horas >= 40 Entonces

        Escribir "Has trabajado mas de 40hrs";
        resul <- 40*16;
        extra <- horas - 40;
                               res_extra <- extra *20;
                               resul <- resul + res_extra;
        Escribir "Se te Pagara $",resul;

    Sino

        Escribir "Has menos de 40hrs";
        resul <- 40*16;
        Escribir "Se te Pagara $",resul;

    FinSi

FinProceso
 y el diagrama de flujo seria:
y la prueba de escritorio es:

con esto basicamente se puden crea infinidades de programas.



domingo, 9 de septiembre de 2012

Resumen Semana 3

Resumen Semana 3


Lo que se vio en la semana fueron los diferentes tipos de datos los numéricos: float, int; los de  caracteres: string, char y los lógicos: boolean
También están los operadores:
Los aritméticos:
+: suma
*: multiplicación
/: división
-: resta
Los relacionales:
= =: igual a
<: menor que
>: mayor que
<=: menor o igual a
>=: mayor o igual a
!: diferente de
Lógicos
    NOT
    AND
    OR

toda esta simbología nos ayuda a poder desarrollar formulas que la computadora pueda entender, también se debe saber como convertir de una cuenta en lenguaje matemático ó una instrucciones de texto a otra que la entienda la maquina:

como por ejemplo: x(3-4)2z-4/x+2      ...        (x*(3-4))((2*z-4)*(x+2))
Suma dos números y multiplícalos por su misma cantidad

en C++ se utilizan comandos para decirle a la maquina que hacer:


#include <iostream.h>
#include <studio.h:>
#include <cstdlib>

int main( )
{

                  system ("color 0A");
                 int numero[2], multiplicacion;
                 printf("programa que multiplica tres números enteros");
                for(int i =0; i ==3; i++)
               {
                    printf(“Ingresa el %d numero”,numero[i]);
                   scanf(“%d”,&numero[i]);
               }
                multiplicacion = numero[0] * numero[1] * numero[2];
                printf("El resultado es %d ",multiplicacion);
                getch();
}
Con estos simples comandos se pueden hacer, innumerables cosas, y lo que vimos en clase, nos encaminara a hacer grandes cosas.

viernes, 31 de agosto de 2012

Lo Que Se Vio En La Semana 2!


 En esta semana en la clase de programación, se vio la extracción de ligas, que son realmente strings grandes, también se vio el uso y asignación de variables; ejercicios sobre ellos; Cadenas, tipos de datos que son numéricos, carácter, lógicos que son para int, string, double, float, char, bool y los creados por mi;
Se vieron las distintas reglas para los tipos de datos.

La computadora almacena datos en la memoria asignada; que después son desechados al terminar el programa; pero si son permanentes se utilizan las bases de datos.

Procedimientos y funciones
Las funciones son un conjunto de instrucciones que ejecutan una tarea y regresan una acción.
Los tipos de funciones:
  1. Matemáticas
  2. Cadena
  3. Conversión
  4. Estadística
  5. Utilidad
FIN DE LA SEMANA 2.


Que Es UML?
UML es una técnica para la especificación sistemas en todas sus fases. Nació en 1994 cubriendo los aspectos principales de todos los métodos de diseño antecesores y, precisamente, los padres de UML son Grady Booch, autor del método Booch; James Rumbaugh, autor del método OMT e Ivar Jacobson, autor de los métodos OOSE y Objectory. La versión 1.0 de UML fue liberada en Enero de 1997 y ha sido utilizado con éxito en sistemas construidos para toda clase de industrias alrededor del mundo: hospitales, bancos, comunicaciones, aeronáutica, finanzas, etc.  

Los principales beneficios de UML son:
  • Mejores tiempos totales de desarrollo (de 50 % o más).
  • Modelar sistemas (y no sólo de software) utilizando conceptos orientados a objetos.
  • Establecer conceptos y artefactos ejecutables.
  • Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica.
  • Crear un lenguaje de modelado utilizado tanto por humanos como por máquinas.
  • Mejor soporte a la planeación y al control de proyectos.
  • Alta reutilización y minimización de costos.

UML es un lenguaje para hacer modelos y es independiente de los métodos de análisis y diseño. Existen diferencias importantes entre un método y un lenguaje de modelado. Un método es una manera explícita de estructurar el pensamiento y las acciones de cada individuo. Además, el método le dice al usuario qué hacer, cómo hacerlo, cuándo hacerlo y por qué hacerlo; mientras que el lenguaje de modelado carece de estas instrucciones. Los métodos contienen modelos y esos modelos son utilizados para describir algo y comunicar los resultados del uso del método.
Un modelo es expresado en un lenguaje de modelado. Un lenguaje de modelado consiste de vistas, diagramas, elementos de modelo ¾ los símbolos utilizados en los modelos ¾ y un conjunto de mecanismos generales o reglas que indican cómo utilizar los elementos. Las reglas son sintácticas, semánticas y pragmáticas 

Vistas: Las vistas muestran diferentes aspectos del sistema modelado. Una vista no es una gráfica, pero sí una abstracción que consiste en un número de diagramas y todos esos diagramas juntos muestran una "fotografía" completa del sistema. Las vistas también ligan el lenguaje de modelado a los métodos o procesos elegidos para el desarrollo. Las diferentes vistas que UML tiene son:
  • Vista Use-Case: Una vista que muestra la funcionalidad del sistema como la perciben los actores externos.
  • Vista Lógica: Muestra cómo se diseña la funcionalidad dentro del sistema, en términos de la estructura estática y la conducta dinámica del sistema.
  • Vista de Componentes: Muestra la organización de los componentes de código.
  • Vista Concurrente: Muestra la concurrencia en el sistema, direccionando los problemas con la comunicación y sincronización que están presentes en un sistema concurrente.
  • Vista de Distribución: muestra la distribución del sistema en la arquitectura física con computadoras y dispositivos llamados nodos.

Diagramas: Los diagramas son las gráficas que describen el contenido de una vista. UML tiene nueve tipos de diagramas que son utilizados en combinación para proveer todas las vistas de un sistema: diagramas de caso de uso, de clases, de objetos, de estados, de secuencia, de colaboración, de actividad, de componentes y de distribución.
Símbolos o Elementos de modelo: Los conceptos utilizados en los diagramas son los elementos de modelo que representan conceptos comunes orientados a objetos, tales como clases, objetos y mensajes, y las relaciones entre estos conceptos incluyendo la asociación, dependencia y generalización. Un elemento de modelo es utilizado en varios diagramas diferentes, pero siempre tiene el mismo significado y simbología.
Reglas o Mecanismos generales: Proveen comentarios extras, información o semántica acerca del elemento de modelo; además proveen mecanismos de extensión para adaptar o extender UML a un método o proceso específico, organización o usuario. 

FASES DEL DESARROLLO DE UN SISTEMA

Las fases del desarrollo de sistemas que soporta UML son: Análisis de requerimientos, Análisis, Diseño, Programación y Pruebas

Análisis de Requerimientos
UML tiene casos de uso (use-cases) para capturar los requerimientos del cliente. A través del modelado de casos de uso, los actores externos que tienen interés en el sistema son modelados con la funcionalidad que ellos requieren del sistema (los casos de uso). Los actores y los casos de uso son modelados con relaciones y tienen asociaciones entre ellos o éstas son divididas en jerarquías. Los actores y casos de uso son descritos en un diagrama use-case. Cada use-case es descrito en texto y especifica los requerimientos del cliente: lo que él (o ella) espera del sistema sin considerar la funcionalidad que se implementará. Un análisis de requerimientos puede ser realizado también para procesos de negocios, no solamente para sistemas de software.
Análisis
La fase de análisis abarca las abstracciones primarias (clases y objetos) y mecanismos que están presentes en el dominio del problema. Las clases que se modelan son identificadas, con sus relaciones y descritas en un diagrama de clases. Las colaboraciones entre las clases para ejecutar los casos de uso también se consideran en esta fase a través de los modelos dinámicos en UML. Es importante notar que sólo se consideran clases que están en el dominio del problema (conceptos del mundo real) y todavía no se consideran clases que definen detalles y soluciones en el sistema de software, tales como clases para interfaces de usuario, bases de datos, comunicaciones, concurrencia, etc. 

Diseño
En la fase de diseño, el resultado del análisis es expandido a una solución técnica. Se agregan nuevas clases que proveen de la infraestructura técnica: interfaces de usuario, manejo de bases de datos para almacenar objetos en una base de datos, comunicaciones con otros sistemas, etc. Las clases de dominio del problema del análisis son agregadas en esta fase. El diseño resulta en especificaciones detalladas para la fase de programación. 

Programación
En esta fase las clases del diseño son convertidas a código en un lenguaje de programación orientado a objetos. Cuando se crean los modelos de análisis y diseño en UML, lo más aconsejable es trasladar mentalmente esos modelos a código. 

Pruebas
Normalmente, un sistema es tratado en pruebas de unidades, pruebas de integración, pruebas de sistema, pruebas de aceptación, etc. Las pruebas de unidades se realizan a clases individuales o a un grupo de clases y son típicamente ejecutadas por el programador. Las pruebas de integración integran componentes y clases en orden para verificar que se ejecutan como se especificó. Las pruebas de sistema ven al sistema como una "caja negra" y validan que el sistema tenga la funcionalidad final que le usuario final espera. Las pruebas de aceptación conducidas por el cliente verifican que el sistema satisface los requerimientos y son similares a las pruebas de sistema.

lunes, 27 de agosto de 2012

Introduccion ala Programación

Profesor: Juan Gonzales Calleros
Alumno: Jose Arturo Marcelino Flores

Cuales son los seis pasos para resolver el problema?
  • 1.       Identificar  el problema.
  • 2.       Entender el problema
  • 3.       Determinar las alternativas.
  • 4.       Seleccionar la mejor alternativa.
  • 5.       Resolver el problema.
  • 6.       Evaluar solución
Cual es la solución algorítmica del problema?
Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.

Menciona tres problemas actuales en tu vida que podrían ser resueltos atreves de un proceso algorítmico. Explica por qué cada uno de estos problemas es de naturaleza algorítmica.
Cambiar la llanta a un automóvil.
Hacer un platillo de comida.
Armar un juguete.
Porque son pasos lógicos que empleamos diarimiente, en la vida. Que si los tomamos mas encuenta, son una serie de pasos a seguri.

Cual es la solución heurística de un problema?
Es mas compleja y detallada, esta requiere de prueba y error.

Menciona tres problemas actuales en su vida que podría ser resuelto a través de un enfoque heurístico. Explica por qué cada uno de estos problemas es de naturaleza heurística
Crear un programa.
Elaboración de una canción.
Crear una empresa.
Porque son más complejas y detalladas, requiere de una prueba y error, se va mejorando con cada aplicación de esta.

Nombrar tres problemas actuales en su vida que pueda surgir en la casa, en la escuela o en un negocio que podría ser resuelto de manera más eficiente con ayuda de la computadora. ¿Estos problemas requieren una solución algorítmica o heurística? ¿Por qué?
  • 1.       Programar
  • 2.       Buscar información.
  • 3.       Faltas de ortografía en Word.
La primera es de solución HEURÍSTICA ya que necesita de un proceso detallado, con la aplicación de prueba y error.
La segunda y tercera son de problema algorítmico ya que son pasos sencillos de resolver.

Indica una razón por qué cada uno de los seis pasos para resolver  problemas es  importante para desarrollar la mejor solución para un problema. Da una razón para cada uno de los pasos.
  • 1.       Identificar  el problema:
  • Es primordial identificar el problema, si no ya que es la base de todo.
  • 2.       Entender el problema:
  • Entender de qué trata el problema
  • 3.       Determinar las alternativas:
  • Buscar todas las posibles alternativas.
  • 4.       Seleccionar la mejor alternativa:
  • Seleccionar, la opción más confiable y que se aproxime ala solución.
  • 5.       Resolver el problema:
  • Al resolver el problema podrás encontrar la respuesta al problema.
  • 6.       Evaluar solución:
  • Confirmar si es a correcta.