martes, 21 de mayo de 2013

diagonal y suma de matrices

diagonal de una matriz en c++:

la matriz diagonal es una matriz cuadrada la cual en su diagonal todos los valores son iguales un ejemplo de eso puede ser la matriz idéntica: 

en el programa de c++ el orden de la matriz se representa primero en filas y luego en columnas por jemplo en el caso que se  determine el espacio de una matriz 3*2 se requiere representarla bidimencionalmente como A[3][2].
de igual modo se pueden representar matrices en orden de máximos y mínimos como una condicion, por ejemplo A[max][min], los cuales se pueden determinar dentro de las condiciones for(), while(), else; etc
  • while(f<=0 || f>max); while(f<=0 || f<min);
cuando ya hemos declarado la dimensión de la matriz en necsesario detrminar d eque tipo es y en ete caso declararemos que es una matriz diagonal.

ejemplo:

form1:tform1;
matriz diagonal: array [1...n;1...n]

programa:

tform1.matriz(
var
i,j:integer;
for i=1
for j=1
if(j=i)
matriz diagonal[i,j]=strtoint(inputbox(introducir nuero para llenar la matriz);
grid .cell[j-1,i-1)= matriz diagonal[i,j]
end

suma de matrices:

Una matriz es una estructura de datos, o más técnicamente, un espacio de memoria que
permite almacenar una colección de elementos, todos del mismo tipo. La diferencia con
los arreglos está en que, en las matrices, los elementos no están organizados linealmente
sino que su organización es bidimensional, es decir, en filas y columnas.



ejemplo:

matriz con nombre mat, de dimensión 15x4 y que pueda almacenar datos de tipo caracter

  • mat : matriz [15][4] de carácter

programa con suma de matrices: 


int con=0;

con=sumas[0];
para(i=1 hasta 2*tam+1) hacer
si(con<>sumas[i])
escribir("la matriz no es mágica)
i=2*tam+3;
fin_si
fin-para
si(i=2*tam+2)
escribir(“la matriz es mágica y la suma es:”)
escribir(con);
fin_si


seudónimo y codificación en c++
 <NOMBRE> : matriz [<N>][<M>] de <TIPO>

<TIPO> <NOMBRE>[<N>][<M>]

arreglos en c

arreglos en c

Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones en memoria. La dirección más baja corresponde al primer elemento y la más alta al último. Un arreglo puede tener una o varias dimensiones.

declaración de un arreglo:

Un arreglo de tipo entero con longitud de 6 enteros

int arreglo[6]; //así se declara un arreglo.

como asignarle valores al arreglo:

arre[0]=1;

esto significa que tenemos un arreglo llamado "arre" y le estamos asignando un valor al indice 0.
asi hasta terminar de llenar el arreglo seria algo como esto;

arre[0]=1;
arre[1]=3;
arre[2]=5;
arre[3]=7;

ejemplo de programas con arreglos:

#include <stdio.h>
#include <conio.h>
main()
{
float arreglo[100], suma=0;
int x, n;
printf("Numeros a promediar: " );
scanf("%d", &n);
for(x=0; x<n; x++)
{
printf("Introduce valor %d: ", x+1);
scanf("%f",&arreglo[x]);
suma+=arreglo[x];
}
printf("El promedio es %.2f ", suma/n );
printf("nPrograma creado y desarrollado por Daniel Soto Vergara." );
printf("nGracias por su preferencia." );
return 0;
}


http://c-ayuda.forolatin.com/t25-arreglos-en-c

switch();

programación con switch

es un sistema que se usa en programación para hacer programas en las cuales se exige evaluar muchas condiciones a la vez sin la necesidad de usas condiciones compuestas demasiado grandes. por ello switch(); se usa como la mejor opción.

como determinar las variables de la condición: switch(var int o char);

condiciones:

1. Solo se puede usar como variable de condición una variable entera o variable char.
2.Las constantes que estamos buscando y comparando son de tipo char, por eso se deben encerrar entre apóstrofes ( ').
3. Si se quiere resolver el problema de mayúsculas o minúsculas en el teclado, observar que se usan dos case, pero con un solo break;
4.En particular, instrucciones de tipo switch() se usan para construir programas de selección de menús, donde al usuario se le plantean dos o tres problemas distintos y el propio usuario seleccionaba cual de ellos se ejecuta

 ejemplo de un programa usando switch();

Programa de prueba con switch
http://www.bloginformatico.com/sentencia-switch-lenguaje-de-programacion-c.php

martes, 30 de abril de 2013

Programa dev c/c++

Programa dev c/c++

Consiste en un editor de múltiples ventanas integrado con un compilador que nos permitirá una compilación, un enlace y una ejecución de aplicaciones rápida y de fácil uso.
 c++ fue creado para extender el lenguaje de programacion c y a diferencia de DFD que habiamos visto antes de comenzar con Dev c/c++,  no se usan simbolos  así como en los diagramas de flujo que aprendimos, si no que usa codigos para reemplazar aquellos simbolos, por eso es importante saber hacer un diagrama de flujo o algoritmo, para poder realizar bien un programa en c, c++, o cualquier programa que use lenguaje de programación con codigo, porque la idea sigue siendo la mismo solo cambian los simbolos por palabras restringidas en dicho lenguaje.
Diferencias entre dev c y dev c++
Pedir un dato en C
scanf("modificador", &nombre de la variable);
Pedir un dato en C++
cin >> nombre de la variable;
Mostrar un dato en C
printf("Dato: modificador", nombre de la variable);
Mostrar un dato en C++
cout << "Dato: " << nombre de la variable;
Los modificadores son los siguientes: %d para int, %f para float, %s para string, %c para char.

Librerías en C++

Por simple convención las librerías en C terminan en ‘.h’ (punto hache). Todas las librerías de C sirven para C++, sin embargo, también por convención, se elimina la terminación ‘.h’ y mejor se agrega ‘c’ al principio.
Librería en C      Librería en C++
math.h                  cmath
string.h                 cstring
time.h                   ctime
etcétera.
Ejemplo de los programas dev c/c++
En C

En C++



DFD
que es? 
es un software diseñado para construir y analizar algoritmos. Usted puede crear diagramas de flujo de datos para la representación de algoritmos de programación estructurada a partir de las herramientas de edición que para éste propósito suministra el programa. Después de haber ingresado el algoritmo representado por el diagrama, podrá ejecutarlo y analizarlo.

Componentes en DFD

  • PROCESOS (burbujas): representan la parte del sistema que transforma ciertas entradas en ciertas salidas.
  • FLUJOS: representan los datos en movimiento. Pueden ser flujos de entrada o flujos de salida. Los flujos conectan procesos entre sí y también almacenes con procesos.
  • ALMACENES: representan datos almacenados. Pueden ser una base de datos, un archivo físico, etc.
  • TERMINADORES: representan entidades externas que se comunican con el sistema. Esas entidades pueden ser personas, organizaciones u otros sistemas, pero no pertenecen al sistema que se está modelando. 

 tipos de procesos:

Existen procesos y flujos especiales llamados procesos de control y flujos de control. Se emplean para modelar sistemas en tiempo real.
Los flujos de control son señales o interrupciones, en tanto los procesos de control son burbujas que coordinan y sincronizan otros procesos. Los procesos de control sólo se conectan con flujos de control.
Los flujos de control de salida "despiertan" otras burbujas, en tanto los flujos de control de entrada, especifican que una tarea terminó o se presentó un evento extraordinario.

CARACTERISTICAS

Relevante: 

Ya que posibilitar comunicar diferentes modelos para así facilitar el entendimiento entre el usuario y el analista de sistemas.
Lógico: 

 Ya que no identifica soporte físico.
Descendente: 

 Se construye en forma descendente, de lo general a lo particular.

Ejemplo de un programa en dfd


http://kllamillav.blogspot.com/2009/11/ejercicios-de-algoritmo.html

lunes, 25 de febrero de 2013

algoritmos

Que es un algoritmo?
un algoritmo es un sistema de pasos definidos en orden de tiempo finito que da solucion a unos procedimientos dados a un ordenador o dispositivo para que realice cierta cantidad de tareas  especificas.

Que es un diagrama de flujo?
es una representacion grafica de un algoritmo que conlleva a un procedimiento en jerarquia. este emplea simbolos y graficos que señalan la censecutividad de cada etapa del proceso .


 los tipos de datos en programacion

El tipo integer (entero)
Como ya habrás leído el tipo de datos entero es un tipo simple. Al declarar una variable de tipo entero, estás creando una variable numérica que puede tomar valores positivos o negativos, y sin parte decimal.
Este tipo de variables, puedes utilizarlas en asignaciones, comparaciones, expresiones aritméticas, etc. Algunos de los papeles más comunes que desarrollan son:
  • Usarlas como contador, incrementando su valor cuando sucede algo
  • Realizar operaciones enteras, es decir, sin parte decimal


      
   type
      tContador = integer;
   var 
      i : tContador;
      n : integer;

   begin
      n := 10; (* asignamos valor al maximo *)
      i := 1;  (* asignamos valor al contador *)
   
      while (i <= n) do begin
        writeln('El valor de i es ',i);
        i := i + 1
      end
   end.   
      

El tipo boolean (lógico)
El tipo de datos lógico es el que te permite usar variables que disponen sólo de dos posibles valores: cierto o falso. Debido a esto, su utilidad salta a la vista, y no es otra que variables de chequeo. Nos sirven para mantener el estado de un objeto mediante dos valores:
  • si/no
  • cierto/falso
  • funciona/no funciona
  • on/off
      
   type
      tLogico = boolean;
   var 
      llueve   : tLogico;   (* si llueve o no *)
      paraguas : boolean;   (* si encuentro o no el paraguas *)

   begin
      (* aqui se determinarian los valores de "llueve" y "paraguas" *) 
      
      if llueve and (not paraguas) then         
         writeln('Me quedo en casita')
      else 
         writeln('Me voy a dar un paseo')
   end.   
      

El tipo real (real)
Como ya has visto, Pascal soporta el conjunto entero de números. Pero no es el único, también te permite trabajar con números pertenecientes al conjunto real.
El tipo de datos real es el que se corresponde con los números reales. Este es un tipo importante para los cálculos. Por ejemplo en los estadísticos, ya que se caracterizan por tratar fundamentalmente con valores decimales.
nota: Aunque pueda que estés acostumbrado a escribir con coma los decimales, te advierto que en Pascal y en todos los lenguajes de programación se escribe con un punto. Por ejemplo: 3.1416
A continuación tienes un ejemplo en el que se utiliza el tipo real. En el puedes ver las dos formas de declarar una variable real, y tambíen el uso de una constante real. Por si tienes curiosidad, el resultado de ejecutar el programa compilado es:

El area para un radio de 3.14 es 63.6174

   const
      pi = 3.1416;      
   type
      tArea = real;
   var 
      A : tArea;     (* area *)
      R : real;      (* radio *)

   begin
      R := 4.50;
      A := pi * R * R;    (* calculamos el area *)
      
      writeln('El area para un radio de ',R:4:2,' es ',A:8:4)
   end.   
      

Los tipos char y string (carácter y cadena)
Con el tipo carácter puedes tener objetos que representen una letra, un número, etc. Es decir, puede usar variables o constantes que representen un valor alfanumérico. cada variable sólo podrá almacenar un carácter.
Sin embargo, con las cadenas de caracteres (strings) puedes contener en una sóla variable más de un carácter. Por ejemplo, puedes tener en una variable tu nombre.
Veamos cómo se usan ambos tipos en el siguiente ejemplo


      
   type
      tNombre = string[10];  (* puede almacenar 10 caracteres *)
   var 
      nombre    : tNombre;  (* variable para almacenar el nombre *)
      letra_NIF : char;     (* caracter para contener la letra del NIF *)

   begin
      nombre    := 'Beni';
      letra_NIF := 'L';
      
      writeln('Mi nombre es ',nombre,' y mi letra es ',letra_NIF)      
   end.   
      

http://teleformacion.edu.aytolacoruna.es/PASCAL/document/tipos.htm#caracter



domingo, 17 de febrero de 2013

Sistemas numéricos octal y hexadecimal

Sistema octal
Este sistema numérico corresponde al sistema de números que se impone de 8 números enteros 0-7 lo que refiere que luego de estas cifras no pueden haber números mayores.

Operaciones:

Suma: la suma se realiza como en la suma normal de enteros su diferencia se encuentra cuando la suma de esos números dan mayores a 7 ya que cada vez que da una cantidad mayor se completa el valor octal ósea 8 haciendo que se suba una cifra y el residuo se coloque en el resultado así sucesivamente
* si el resultado da 8 se sube la unidad y en el resultado se coloca cero
* si por el contrario da 17 se suben 2 unidades y en el resultado se coloca 1
 Ej: 740352+24567=765141

Resta: al igual que el la suma es similar a la resta de enteros pero la diferencia es que cada vez que el número octal se da se sube la cantidad de veces que este se encuentra en la resta y el resultado es el residuo de ese número
* cuando un número es menos al que se le va a restar el número consecutivo a este le presta una unidad que representa un número octal ósea su valor es igual a 8
Ej: 2 - 4 es un número que no se puede restar así que si el dos tiene un número anterior c;omo 7 este le presta 1 quedando el 7 en seis y el 2 en 8+2=10 y de esta manera la resta si se podría efectuar .
 Ejemplo resta:
45670030-7654321=36013507

Multiplicación: la multiplicación se lleva a cabo de manera que cada uno de los multiplicadores se operé con el multiplicado dando así múltiples resultados que luego se su,aún entre si. La base de cada operación es que cada vez que se multiplique el multiplicado se corra una cifra a la izquierda y asi consecutivamente. Luego se realiza lo ya comentado como suma de octal.
 Ej:   203572 * 13571 = 2203572+1032126+1222542+613156+203572= 3012077252

Sistema hexadecimal
Como su nombre lo indica es un sistema conformado de 0 a 16 lo que corresponde a que cada unidad de este sistema representa un sistema de 16 esto con respecto a la resta suma y multiplicación los cuales se conforman respecto a la cantidad de veces que se encuentra el número 16 en cada una d elas operaciones. Sin embargo este número o puede llegar a tener números compuestos de 2 enteros así que llega representado en número hasta el 9 y del 10 en adelante van representados en letras dando valor a cada una es decir: 10=A 11=B 12=C 13=D 14=E 15=f

Operaciones sistema hexadecimal:
Suma: similar que en la suma del sistema octal cada vez que la suma da igual o mayor a 16 se sube al sumando la cantidad de veces que se encuentra ese valor y el residuo va al resultado dando números no mayores a 15 si el residuo de mi suma es 10 este se cambia por la letra A y así sucesivamente si la suma es F+A+5= 30    30 = 16*1+14 = 1E

Resta: la resta en los números hexadecimales se da restando como comúnmente se hace con los enteros solo que cuando el número restado es mayor al que lo resta entonces el número consecutivo a este que esta en operación le debe prestar un unidad lo que representa en este sistema al número 16
Ej: 25-6 como el 5 es menor al seis entonces el dos toma una de sus unidades y se las suma al 5 y como cada unidad prestada equivale a 16 entonces la suma de esta es igual a 21-6 = 15 = F y como el 2 quedo en uno decido ala unidad que le perro al 5 entonces el resultado final sería 1F

Ej: 3015289-1BCDA3= 2E584E6

Multiplicación hexadecimal:
En la multiplicación los números del multiplicador se van multiplicando uno a uno en el multiplicado si es una letra la que se esta multiplicando y esta es F entonces los número o letras por las que se multiplican están siendo una serie de 15= F multiplicando el resto de multiplicados es decir: si 15 * A =150
Ej: 2468A * BCD= 1D9502+1B4E78+1907EE= 1ADA6A82
esto teniendo en cuenta que cada uno de los numeros que dan como resultado de la multiplicacion van corriendo una cifra a la izquierda para asi efectiar la suma correspondiente



jueves, 7 de febrero de 2013

Sistemas de números

Números binarios

Los números binarios son un conjunto numérico representado únicamente por el 1 y el 0 cuya conjunción o unión en representación de la base 10 dan como resultado números enteros. Así mismo los números enteros al estar representados en una 2 da la cifra contraria en este caso binarios. 

Como convertir de base 10 a base 2

Se toma el número entero y se divide hasta su mínimo entero entre dos el resultado de esta escala se comprende tomando los valores del residuo de derecha a izquierda dando por último un número binario.

Convertir de base 2 a base 10

Teniendo un número binario tal como 1001 lo multiplicamos por 2 aumentando su exponente al consecutivo del anterior ejemplo 2^0 2^1 2^2 etc. Y la su mayoría de cada una de estas multiplicaciones dan como resultado el número en enteros.

Operaciones con binarios
Suma: 
La suma se lleva a cabo poniendo un binario encima del otro como se realiza normalmente con los números enteros. Solo que al sumar estos número existe cierto tipo de condiciones tales como:
* 1+1= 2.      2=10
* 1+0=1
* 1+1+1=3.       3=2+1.     2 =10    = 10+1 
Lo que nos representa en la suma dejar un 1 en el resultado y el otro subirlo para seguirlo sumando con el resto de la operación 

En una operación con más cantidades binarias se puede realizar sumando la cantidad de 1 verticales y su resultado lo separo en cantidades de 2. Existen 2 condiciones cuando un número es par en la suma  de los 1 verticales el número de resultado da 0 y si es impar en el resultado se agrega 1.
Ejemplo: la suma vertical de los 1 dio 8 a lo que es igual 2*4+0 el cero se queda en el resultado y el cuatro sube para seguir sumando el resto de la operación. Si es lo contrario y su suma da 7 esto sería igual a 2*3+1=7 el uno queda como resultado y el tres sube para seguir sumando.

Resta de números binarios
Así como en la resta de enteros los números que no alcanzan a la resta de otro número es necesario que el consecutivo a este seda la base de si mismo para que este número sea mayor y pueda realizar la operación esa base se refiere a la base 10 de cada entero pero en el caso de lo binarios su base es dos así que sus condiciones son las siguiente:
* 1- 1= 0
* 1- 0=1
* 0 - 1 en el caso de que cero reste a uno el número consecutivo a cero que sea 1 sede su base 2 y al restar este 2-1=1
*en caso de que la operación de 0000010 solo se tienen en cuenta los números desde el primer uno dela izquierda o sea 10 en este caso



miércoles, 6 de febrero de 2013

Lógica de programacion

logica de programacion 

la logica de programacion consiste en dar instrucciones a un dispositivo en un lenguaje apropiado para que pueda leerlas y de esa manera generar el programa o funcion normalmente que solucionan un problema. esta logica de programacion es apenas una base del sistema previo de conjuntos algoritmicos que se fucionan para crear un programa especifico. este sistema tiene en cuanta las funciones básicas de un dispositivo como por ejemplo una computadora en la cual entra información, esta hace un proceso y la almacena y genera una salida de la misma, esto nos hace a nosotros razonar acerca de los distintos algoritmos que debemos usar a la hora de realizar un ejercicio ya sea de negocios o sistemáticos.