Hack x Crack - Comunidad de Seguridad informática

Programación => Otros => Mensaje iniciado por: Lynx-htw en Marzo 10, 2014, 04:12:17 pm

Título: Introduccion a la programacion
Publicado por: Lynx-htw en Marzo 10, 2014, 04:12:17 pm
Hola a tod@s
Aun no me he presentado ante ustedes pero luego de hacer este post ire directamente a hacerlo  :)
Les traigo mis apuntes de esta asignatura para los que recien comienzan sera de mucha utilidad, espero poder ir actualizando conforme mis clases vayan pasando, la idea es crear una discusion en donde todos opinen del curso planteen sus dudas, las resuelvan y hasta se creen debates, incluso yo estoy seguro que tendre muchas preguntas para los que tienen mas experiencia ya que en clases no soy mucho de preguntar pero aqui frente a mi pc y un buen porro me concentro me ilumina y se me vienen todas las dudas, respuestas pero cuando ya no dispongo del profe, ademas no me gusta verle la cara jeje.
asi que espero esto les sirva tanto a ustedes como a mi. esto señores es "Fundamentos de la programacion" y comienza aqui. saludos:

Contenidos:
- Fundamento de procesamiento de datos
- tecnicas de algoritmos para el diseño de procesos computacionales
- introduccion a lenguajes formales de programacion
- introduccion a la programacion orientada a objetos


Primera clase:

Conceptos basicos
Todo sistema computacional tiene por fin la realizacion de estos tres pasos:
entrada de datos ---> proceso de datos. --> salida de datos.

Proceso: basicamente cuando se toman los datos y se realizan modificaciones o cambios sobre ellos generando informacion.

Dato: el dato corresponde a un atributo C/valor que representa el registro de un hecho importante el dato esta compuesto de un atributo y un valor.
El atributo define que es lo que se desea guardar y el valor define el tipo de valor asociado, es decir el tipo de dato y sus valores maximos y minimos.

Informacion: Corresponde al resultado de un proceso y es un msj valido para un receptor.

ejercicios: (se debe hacer encontrando los datos de entrada hacer el proceso y la salida)
De un curso de 22 alumnos reprobo el 20% de ellos ¿cuantos alumnos aprobaron?

Un alumno desea calcular su promedio en la asignatura de fundamentos de la programacion, las notas que obtuvo durante el semestre fueron (nota maxima 7 en mi pais) 4.5, 5.0, 3.5, 3.0. Para el calculo del promedio se utilizan las siguientes ponderaciones por nota. primera 20%, segunda y tercera 25% del promedio c/u y cuarta 30%.
--
Por favor si sientes la necesidad de complementar o corregir cualquier cosa no dudes en hacerlo, me servira tanto a mi como a ti como a todos
El profesor que dicta la clase tiene un magister en Java por lo que concluyo que su aproximacion al pseudocodigo sera con este lenguaje.

saludos!  8)
Título: Re:Introduccion a la programacion
Publicado por: Lynx-htw en Marzo 13, 2014, 12:14:52 am
No veo interesados, sera porque tienen los cuadernos de HxC o ya hay algo como esto no se pero aqui va otra actualizacion y porfavor comenten para saber si hay interesados o si quiera para ver si hay alguien que lea esto
saludos..

--

3.- Una empresa minera le cancela aun trabajador un sueldo de $1.250.000 los descuentos corresponden a un 20% del sueldo
La empresa decide darle un bono de un 40% del sueldo. ¿Cual es el sueldo final que tendra el trabajador?.


Estructura fundamental de un computador

            ------------------------
dispositivos de entrada ----->   |   CPU          |
         datos                   |Unidad    | Unidad    |
                                    |aritmetica| de control|
                                     |logica      |               |
                                     ------------------------       ------------------
                 |   Memoria        |     ------------->   |Dispositivos |
            ------------------------   Informacion   |               de       |
            |Memoria central o interna|         |    salida          |
            ---------------------------                  ------------------   
            |    RAM    |    ROM  |
            ---------------------------
            |Memmoria auxiliar o externa|
            -----------------------------
Dispositivos de entrada: teclado, microfono, joystick, webcam etc.
Dispositivos de salida: Parlantes, pantalla, impresora. etc.

La CPU se divide en dos partes la unidad ARITMETICA LOGICA que es donde se procesan operaciones matematicas
y la unidad de control en la que se lleva a cabo la direccionn de la secuencia de pasos que permiten al
computador llevar un ciclo de secuencia completa de ejecucion de una instruccion y hacer esto con todas
las instrucciones que tengan los programa.

La memoria RAM o lectura de memoria de acceso es volatil lo que significa que todo lo que se almacene
en esta una vez se corte la energia esta borra los datos escritos anteriormente
a diferencia de la ROM que es una memoria de solo lectura como lo dice su nombre, es lo que el fabricante
plasma en ella los limites que podria soportar la placa en la que esta inserta

--
perdonar el desorden cuando tenga mas tiempo arreglo bien los cuadros.
Título: Re:Introduccion a la programacion
Publicado por: anarius en Marzo 13, 2014, 02:40:52 am
Buen aporte Lynx de seguro lo han visto pero no comentan esta bien explicado y esperamos mas de tus aportes no te rindas eso es lo que nunca debes hacer ;) tenlo por seguro que a mas de alguien ayudaras con esta retroalimentacion y te servira de mucho a ti para que refuerses lo aprendido y lo mantegas fresco :D

[A]nar1us .-.
Título: Re:Introduccion a la programacion
Publicado por: MalaSuerte531 en Marzo 13, 2014, 11:20:16 am
buen aporte
Título: Re:Introduccion a la programacion
Publicado por: Lynx-htw en Marzo 17, 2014, 04:17:25 pm
Muchas gracias por el apoyo, es realmente satisfactorio como ya dije estos son apuntes de mi clase y el profesor no deja tomarlos con la maquina asi que lo transcribo especialmente para HxC y el curso seguira hasta por lo menos el 5 de julio asi que es de gran aliento sus respuesta, pero aun asi incito a la discusion de los temas. Quien sabe despues podriamos pasarlo a un pdf y ponerlo entre los cuadernos de hxc

---


TECNICAS DE ALGORITMOS PARA EL DISEÑO EN PROCESOS COPMPUTACIONALES.

-Algoritmo: un algoritmo corresponde a una serie de pasos organizados que describen el proceso que se debe seguir para dar solucion a un problema especifico.
Los algoritmos los podemos agrupar en 2 tipos:

- Algoritmos cualitativos: Son aquellos en los que se describen los pasos utilizando palabras. Ej: Instructivos
- Algoritmos cuantitativos: Son aquellos en los que se utilizan calculos numericos para definir los pasos del proceso. Ej: Formula matematica.

Para la representacion de los algoritmos se utilizan los lenguajes algoritmicos, que son una serie de reglas y simbolos que permiten describir de manera explicita un proceso. Existen dos tipos:

- Lenguajes algoritmicos graficos: son la representacion de los algoritmos de las operaciones que realiza un algoritmop Ej. Diagrama de flujo.

- Lenguajes algoritmicos no graficos: representa en forma descriptiva las operaciones que debe realizar un algoritmo Ej. Pseudo codigo.

CARACTERISTICAS DE UN BUEN ALGORITMO

- Debe tener solo un punto de inicio y otro de fin.
- Debe ser definido, no debe permitir dobles interpretaciones.
- deben ser generales, es decir, soportar la mayoria de las variantes que se puedan presentar en la definicion del problema.
- Debe ser finito en tamaño y tiempo de ejecucion, es decir, debe tener un fin.

DIAGRAMA DE FLUJO.
Los diagramas de flujos se definen como la representacion grafica que mediante el usoo de simbolos estandar unidos a traves de lineas de flujo, muestran la secuencia logica de las operaciones o acciones que debe realizar un computador, asi como la corriente o flujo de datos en la resolucion de problemas

(http://es.tiching.com/uploads/contents/2011/08/16/39886_1313498612.png)
Es un punto de inicio y fin en un diagrama de flujo

(https://lh5.googleusercontent.com/-cglNwx3H83k/TXFqdGETcuI/AAAAAAAAQE0/1SSAK7BKZgY/s800/forma-rombo.jpg)
Desicion de dos salidas: Este es el unico elemento en un diagrama de flujo que puede tener una salida de dos lineas de flujo, entra una y salen dos, es normalmente usada para tomar una desicion.

(http://www.monografias.com/trabajos60/diagrama-flujo-datos/Image26495.gif)
Lineas de flujo: se usan para unir los eventos sucedidos, todos los elementos exepto por el conector y la desicion de 2 salidas usan solo una linea

(http://www.misdibujosfavoritos.com/Images/Small/Figuras-y-formas-Circulo-317341.png)
conector: sirve para unir distintas lineas de flujo para que solo tenga una salida en un proceso (me quedo un poco grande el circulo pero ustedes entienden jeje)

(http://neoparaiso.com/imagenes/med/romboide.1.gif)
Dispositivo de entrada/salida: como lo dice su nombre este elemento se ocupa para ingresar datos al diagrama o para que muestre datos de salida

(http://www.fmaths.com/geometry1/cours/rectangle.gif)
proceso: Sirve para realizar el procesamiento de los datos, es decir, sirve para situaciones en las que por ejemplo se necesiten hacer calculos.
Título: Re:Introduccion a la programacion
Publicado por: Lynx-htw en Marzo 24, 2014, 04:32:16 pm
Buenas gente de HxC!!!
Hoy les traigo algunos ejercicios para diagramas de flujo, basicamente el diagrama de flujo introduce en la metodologia de la programacion, la forma mas basica de introduccion, una aproximacion grafica como explicaba antes sin mas que decir aqui les dejo los ejercicios. saludos

--

1.- Crear un diagrama de flujo que permita leer un numero y calcule e imprima el cuadrado y el cubo del numero ingresado

2.- Crear un diagrama de flujo que permita leer un numero y calcule e imprima el sucesor del numero ingresado

3.- Crear un diagrama de flujo que permita ingresar el nombre y el año de nacimiento de una persona luego que calcule e imprima el nombre de la persona y sui edad actualmente

4.-crear un diagrama de flujo que permita leer un numero y calcule e imprima si el numero es positivo o no

5.- Crear un diagrama de flujo que permita leer dos numeros y calcule e imprima el valor del numero menor, considere que los numeros pueden ser iguales.

6.- Crear un diagrama de flujo con el siguiente problema:
Una empresa desea cancelar un bono segun la produccion que realizo el trabajador, para esto utiliza los siguientes rangos expuestos en la tabla

Produccion                             %bono
Menos de 50                          15% del sueldo
entre 50 y menos de 100       25% del sueldo
entre 100 y menos de 150     35% del sueldo
entre 150 y mas                       45% del sueldo

El diagrama debe permitir ingresar el sueldo y la produccion del trabajador y debe calcular e imprimir lo siguiente:
- Sueldo sin bono
- valor del bono
- sueldo con bono incluido

Operadores
> Mayor
< menor
>= mayor igual que
<= menor igual que
!= distinto que
== igual que

&& (y) para que se cumpla ambos valores deben ser verdaderos
|| (o) para que se cumpla,(** por favor, corrijanme si me equivoco**) un valor debe ser verdadero y otro falso
----------------------------
P  Q | P &&  |  P || Q |
----------------------------
V  V |      V    |    V     |
----------------------------
V  F |      F    |     V    |
----------------------------
F  V |      F    |     V    |
----------------------------
F  F |      F    |     F     |
---------------------------

No hare mucho hincapie en diagrama de flujo prefiero ensañarme en pseudocodigo mas adelante que es una aproximacion mucho mas aplicable o parecida a la programacion verdadera, en todo caso si necesitan mas sobre diagramas de flujos existe un programa de diagrama de flujo para linux que se llama DIA
Luego subire la documentacion del curso para que quienes tengan dudas o quieran saber mas puedan buscarla aqui.

Saludos!
Título: Re:Introduccion a la programacion
Publicado por: Lynx-htw en Abril 07, 2014, 05:10:56 pm
Hola compañer@s no habran creido que los deje botados, o si?  :D
todo lo que nos pasaban en la asignatura eran ejercicios los que facilmente les puedo subir en una guia y la dejare de hecho, mas abajo
pero hoy vamos a hablar de PseudoCodigo, aquel "lenguaje" con el que nos introduciremos a los lenguajes de programacion solidos, y que sorpresa porque esto es a lo que vinieron tanto ustedes a este post como yo en la asignatura intentare de que sea lo mas explicativo posible pero por favor ayudenme porque quizas me quede corto de definiciones.
Entonces, a por ello.

PseudoLenguaje o PseudoCodigo

El pseudocodigo es un sublenguaje de un lenguaje de programacion, mas cercano al lenguaje que utilizan las personas.
Un ejemplo

Crear un programa en pseudolenguaje que permita leer un numero y calcule e imprima el antesesor del numero leido

es un programa bien facilito asi que comenzemos

start // inicia nuestro programa

     definicion del atributo del programa (NUM O CHAR) // se declaran las variables de caracter NUM (en caso de que sea numerico) o CHAR (si son caracteres)
   
     INSTRUCCIONES // Las instrucciones que le daremos a nuestro programa se encuentran aqui

END

entonces

Start
       num "ingrese numero", x
       ant=x-1
       print "el antesesor es", ant
End
supongo que esta bien claro
declaramos la variable x a la cual se le tiene que asignar un numero a traves del teclado
declaramos que ant es x-1 para encontrar el antecesor
imprimimos en pantalla el mensaje que dice "el antecesor es" y concatenamos la variable donde guardamos el valor del antecesor de x que es ant
y terminamos el programa

Condicion IF & ELSE

La condicion if nos resuelve en crear un "modulo" si es que no mal utilizo la palabra, que me corrijan si lo hago, para evaluar una condicion y dentro de esta si se cumple esta condicion entregar instrucciones para que la maquina interprete
la condicion if entrega un valor booleano o sea verdadero o falso, si es verdadero como ya vimos ejecuta la instruccion dentro de ella si resulta falso salta a la siguiente condicion o linea que podria ser tanto un else como un if o alguna otra sentencia que veremos mas adelante

la syntaxis es :

if (condicion)
{
instruccion
}

ejemplo
Crear un programa en pseudolenguaje que permita leer 1 numero y calcule e imprima si el numero es positivo negativo o neutro.

Start
       num a
       read "ingrese un numero", a
       if (a>0)
       {
       print "el numero es positivo"
       }
       
       if (a == 0)
      {
      print "el numero es neutro"
      }

      if (a < 0)
      {
      print "el numero es negativo"
      }
end

si en la ultima condicion en vez de if hubiera puesto else tendria dos salidas y eso no es lo que buscamos, rutear con el numero 7 para darse cuenta, y con rutear me refiero a seguir el trazo que recorreria el numero si la "a" fuera un 7

aun asi las condiciones si hubieramos querido ocupar else tambien lo hubieramos podido hacer de esta manera:

      if (a > 0)
       {
       print "el numero es positivo"
      }
      else
      {
      if (a < 0)
      {
      print "numero es negativo"
      }
      else
      {
      print "numero es neutro"
     }
      }
end

les dejo 2 problemas

crear un programa que permita leer 3 numeros y determine si la suma del primero y el segundo es igual al tercero.

crear un programa en pseudolenguaje que permita leer 3 numeros y calcule e imprima el valor del numero menor.

y como les dije al principio les entrego una guia de diagramas de flujo que tambien puede servir para ejercitar el pseudolenguaje
Descargar aqui: https://www.mediafire.com/?069l5eig69zmlr0

Saludos a todos y nos vemos en la proxima clase.
Título: Re:Introduccion a la programacion
Publicado por: Lynx-htw en Abril 14, 2014, 07:11:41 pm
Hola compañer@s como van? listos para mas?!.. Asi me gusta  ;D
hoy vamos a ver la sentencia o ciclo WHILE

--
Ciclo While

Hasta ahora solo hemos visto programas lineales ejecutando una por una las instrucciones, me refiero a que solo hemos visto como hacer para que 2 o 3 condiciones hagan el trabajo pero si queremos ingresar mas de 100 numeros, seria una locura ocupar la sentencia IF 100 veces para contar por ejemplo los positivos que alli se encuentran.
While reduce esta tarea a unas pocas lineas

La clave esta en la palabra contar, ¿por que? porque necesitamos un contador que nos vaya, contando el numero de veces que se repiten las instrucciones dentro del ciclo y por supuesto hay que ir incrementandole el numero de veces en que queramos que se incremente el contador

el contador se debe iniciallizar por ejemplo con=0 o con=1 dependiendo de donde quieres que comienze a contar

la sintaxis de while es

while (condicion)
{
  Instruccion
}
Otras instrucciones

esta demas decir que mientras la condicion sea verdadera, se entrara en el bucle a ejecutar las instrucciones entre las llaves de while

Crear un programa en pseudolenguaje que permita leer 10 numeros y calcule e imprima la cantidad de numeros positivos ingresados

esto seria asi:

start
      num con=1, a, pos=0
      while (con<=10) // tambien puede ser ==
      {
      read:"ingrese un numero", a
      if (a>0)
      {
      pos=pos+1 // o ++ en vez de poner el 1 ++ incrementa en 1 -- decrementa en 1
      }
      }
      print "cantidad de numeros positivos"+pos // usar el simbolo + en este caso es para 'concatenar'
end

Ahora dejare este ejercicio que esta bien completo, bueno este y decir que ahora estan en condiciones de resolver toda la guia que deje en la clase pasada

Crear un programa en pseudo lenguaje que permita ingresar el nombre, el sexo (M O F) y la edad de 1000 personas y calcule e imprima lo siguiente:
- cantidad de personas por sexo
cantidad de personas de sexo femenino mayores de edad //siendo 18 la mayoria de edad
- cantidad de personas de sexo masculino que su edad este entre 30 y 40 años
- el promedio de edad de las personas de sexo femenino
- los datos de la persona con mayor edad

Y bien eso fue todo por hoy espero hayas entendido y te veo luego
saludos