jueves, 25 de julio de 2019

Manual de introducción a la programación




LOS LENGUAJES DE PROGRAMACIÓN

Un lenguaje de programación es un lenguaje formal que proporciona una serie de instrucciones que permiten a un programador escribir secuencias de órdenes y algoritmos a modo de controlar el comportamiento físico y lógico de una computadora con el objetivo de que produzca diversas clases de datos
Existen 3 niveles de lenguajes de programación
Lenguaje máquina, es el lenguaje que entienden las computadoras, está compuesto por estados de encendido y apagado representados por ceros y unos (0 1). Hay que aclarar que la computadora no entiende ceros y unos, ella entiende estados de encendido y apagado, somos nosotros los humanos que para objetivos de comprensión los representamos como ceros y unos.
Lenguaje ensamblador o Bajo nivel, está compuesto por abreviaturas similares al inglés esta es la base del lenguaje ensamblador.
Lenguajes de alto nivel, permiten escribir instrucciones en el lenguaje que entendemos los humanos, por lo general en inglés.
Ya que las computadoras solo entienden lenguaje máquina, es necesario un traductor, llamado compilador, el cual se encarga de establecer una comunicación entre el programador y la computadora.

Tipos de errores a la hora de programar:
De sintaxis: también llamados errores de dedo, es cuando nos equivocamos al escribir.
De lógica: son difíciles de detectar ya que la computadora no los reconoce.
De ejecución: se generan cuando se ingresan / calculan datos que están fuera de rango del tipo de dato.

Herramientas de programación
Diagramas de flujo: representación gráfica de un algoritmo.
Pseudocódigo: manera de describir el algoritmo con palabras estandarizadas para indicar cada uno de los procesos y comportamiento del programa a desarrollar.

Clases de Programación
Existen varias clases de programación, dependiendo de los métodos utilizados y las técnicas empleadas. Los tipos o técnicas de programación son bastante variados, aunque puede que muchos de los lectores sólo conozcan una metodología para realizar programas. En la mayoría de los casos, las técnicas se centran en programación modular y programación estructurada, pero existen otros tipos de programación. Los explicaremos a continuación.
Programación estructurada (PE): Está compuesta por un conjunto de técnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuración y mantenimiento del mismo. Utiliza un número limitado de estructuras de control, reduciendo así considerablemente los errores.
Esta técnica incorpora:
Diseño descendente (top-down): el problema se descompone en etapas o estructuras jerárquicas.
Recursos abstractos (simplicidad): consiste en descompones las acciones complejas en otras más simples capaces de ser resueltas con mayor facilidad.
Estructuras básicas: existen tres tipos de estructuras básicas:
Estructuras secuénciales: cada acción sigue a otra acción secuencialmente. La salida de una acción es la entrada de otra.
Estructuras selectivas: en estas estructuras se evalúan las condiciones y en función del resultado de las mismas se realizan unas acciones u otras. Se utilizan expresiones lógicas.
Estructuras repetitivas: son secuencias de instrucciones que se repiten un número determinado de veces.

Las principales ventajas de la programación estructurada son:
·         Los programas son más fáciles de entender
·         Se reduce la complejidad de las pruebas
·         Aumenta la productividad del programador
·         Los programas queden mejor documentados internamente.
Un programa está estructurado si posee un único punto de entrada y sólo uno de salida, existen de "1 a n" caminos desde el principio hasta el fin del programa y, por último, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos.

Programación modular: Consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad. En ella, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros. A su vez cada módulo puede contener sus propios datos y llamar a otros módulos o funciones.

Programación orientada a objetos (POO): Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos.
El elemento principal de la programación orientada a objetos es “el objeto”. Es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.
Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento.
El polimorfismo y la herencia son unas de sus principales características y por ello dedicaremos más adelante un artículo exclusivamente a tratar estos dos términos.
Programación concurrente: Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez. Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultánea. Se trata de una programación más lenta y laboriosa, obteniendo unos resultados lentos en las acciones.

Programación funcional: Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones.

Programación lógica: Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda dar soluciones inteligentes).

Buenas prácticas de programación
Si bien es cierto que las buenas prácticas de la programación no son indispensables para que un programa funcione, es necesario hacer uso de ellas para evitar errores en el futuro.
Documentación: consiste en ir comentando ciertas líneas de código con el objetivo de entender fácilmente su funcionamiento, esto hace más fácil su mantenimiento, esto nos puede ser útil si después de cierto tiempo nosotros queremos trabajar en él, con esto podremos recordar la función de cada pedazo de código.
Inicialización de variables y contadores: una variable reserva cierto espacio en memoria para almacenar algún dato, si nosotros no inicializamos las variables, cuando ésta reserve ese espacio es posible que queden “desperdicios” de memoria de algún dato o programa que usó ese espacio anteriormente. Podríamos explicarlo de la siguiente forma, cuando vamos al cine, hay una butaca asignada para cada persona, esto sería el equivalente a el espacio en memoria que reservó la variable, antes que ingresemos a la sala, los trabajadores se aseguran que todo esté limpio y en orden (esto sería la inicialización de la variable) para que cuando nosotros nos sentemos, estén aptas para nosotros; si esto no sucediera, posiblemente haya basura en las butacas (desperdicios de memoria).
Endentado o sangría: Por lo general, se usa un nivel de endentado por cada bloque de código (sentencias condicionales y bucles son consideradas como bloques de código embebido dentro de otro), ésta corresponde a una sangría que comúnmente tiene el valor de una tabulación (tecla Tal) o bien tres o cuatro espacios. Es importante que el tamaño de la sangría sea regular (consistentes) y no varíen a lo largo del código, es decir, si el primer bloque ocupa como endentado una tabulación, el resto de bloques deben ser endentados con una tabulación adicional por cada nivel, con eso se facilita la lectura en cualquier editor de código.
Uniformidad: Se consistente al momento de utilizar un estándar para nombres largos, puedes usar el estándar usado en C ("nombre_largo"), o bien el utilizado en Java, llamado CamelCase("nombre","VariableNombreLargo","Clase","ClaseNombreLargo").

Diagramas de Flujo
Emplean rectángulos, óvalos, diamantes y otras numerosas figuras para definir el tipo de paso, junto con flechas conectoras que establecen el flujo y la secuencia.
Símbolos de diagramas de flujo
A continuación, te enseñaremos algunos de los símbolos de diagramas de flujo más comunes. Para obtener una lista más exhaustiva, accede a nuestra completa página de símbolos de diagramas de flujo.

Símbolo de Inicio / Final Marca el punto inicial o final del sistema. Por lo general, contiene la palabra "Inicio" o "Fin".
Símbolo de Inicio / Final
Símbolo de Acción o Proceso
Un rectángulo solo puede representar un solo paso dentro de un proceso ("agregar dos tazas de harina"), o un subproceso completo ("hacer pan") dentro de un proceso más grande.
Símbolo de Acción o Proceso
Símbolo del Documento Impreso
Un documento o informe impreso.
Un documento o informe impreso
Símbolo de Multidocumento
Representa multidocumento en el proceso.
Símbolo de Multidocumento
Símbolo de Decisión o Ramificación
Un punto de decisión o ramificación. Las líneas que representan diferentes decisiones surgen de diferentes puntos del diamante.
Símbolo de Decisión o Ramificación
Símbolo de Entrada / Salida
Representa el material o la información que entra o sale del sistema, como una orden del cliente (entrada) o un producto (salida).
Símbolo de Entrada / Salida
Símbolo de Entrada Manual
Representa un paso en el que se pide al usuario que introduzca la información manualmente.
Símbolo de Entrada Manual
Símbolo de Preparación
Representa un ajuste a otro paso en el proceso.
Símbolo de Preparación
Símbolo del Conector
Indica que el flujo continúa donde se ha colocado un símbolo idéntico (que contiene la misma letra).
Símbolo del Conector



O Símbolo
Indica que el flujo del proceso continúa en más de dos ramas.
O Símbolo
Símbolo de Unión de Invocación
Indica un punto en el diagrama de flujo en el que múltiples ramificaciones convergen de nuevo en un solo proceso.
Símbolo de Unión de Invocación
Símbolo de Fusión
Indica un paso en el que dos o más sub-listas o subprocesos se convierten en uno.
Símbolo de Fusión
Símbolo de Intercalar
Indica un paso que ordena información en un formato estándar.
Símbolo de Intercalar
Símbolo de Ordenar
Indica un paso que organiza una lista de elementos en una secuencia o establece según algunos criterios predeterminados.
Símbolo de Ordenar



Símbolo de Proceso Predefinido
Indica una secuencia de acciones que realizan una tarea específica incrustada dentro de un proceso más grande. Esta secuencia de acciones podría describirse con más detalle en un diagrama de flujo separado.
Símbolo de Proceso Predefinido
Símbolo del Operación Manual
Indica una secuencia de comandos que continuarán repitiéndose hasta que se detenga manualmente.
Símbolo del Operación Manual
Símbolo de Límite de Bucle
Indica el punto en el que debe detenerse un bucle.
Símbolo de Límite de Bucle
Símbolo de Retardo
Indica un retraso en el proceso.
Símbolo de Retardo
Almacenamiento de Datos o Símbolo de Datos Almacenados
Indica un paso donde se almacenan los datos.
Almacenamiento de Datos o Símbolo de Datos Almacenados



Símbolo de la Base de Datos
Indica una lista de información con una estructura estándar que permite buscar y ordenar.
Símbolo de la Base de Datos
Símbolo de Almacenamiento Interno
Indica que la información se almacenó en la memoria durante un programa, utilizado en diagramas de flujo de diseño de software.
Símbolo de Almacenamiento Interno
Símbolo de Visualización
Indica un paso que muestra información.
Símbolo de Visualización
Conector Fuera de Página
Indica que el proceso continúa fuera de la página.
Conector Fuera de Página





Pseudocódigo

https://imgv2-2-f.scribdassets.com/img/document/176847753/original/da676c04eb/1550587413?v=1



Estructura de un programa en C++
La doble barra se utiliza para indicar que esa línea no forma parte de una instrucción para el programa, sino para comentar o documentar nuestro código
// primero llamamos las librerias que necesitaremos
#Include <stdio.h>
#include <stdlib.h>
//ahora llamamos la función main.
//es necesario usar esta función en C++ para que nuestro programa compile.
Main(){
                //aquí empezaremos por declarar las variables e inicializarlas
                Int num=0;
                Printf(“Escriba un valor entero”); //imprimimos este mensaje en pantalla
Scanf(“%d”,&num); //capturamos el dato ingresado
If((num%2)==0) // utilizamos el condicional para determinar si es par o impar.
                Printf(“el número %d es par”);
Else
                Printf(“el número %d es impar”);
System(“pause”); // pausamos la ejecución del programa en este punto.
}
Nota: si queremos obtener el resultado de la división usamos “ / ”, en este caso lo que necesitábamos obtener era el residuo de la división, por lo tanto usamos “ % ”.
Ejemplo #2 Usando tipo de datos char
#include<stdio.h>
main(){
                char a;
                scanf("%c", &a); //primer scanf
                printf("%c\n",a);
                getchar(); /*puting getc(stdin) also worked*/
                scanf("%c", &a); //segundo scanf
                printf("%c\n",a);
}

Ejemplo #3
// comparar caracteres
#include<stdio.h>
#include<stdlib.h>
main(){
                char opc;
                printf("escriba s si desea continuar y n si desea salir: \n");
                scanf("%c",&opc);
                if((opc==115)||(opc==83))// representa a la letra s o S en ascii
                               printf("usted seleccionó Continuar:\n");
                else
                               printf("usted seleccionó salir:\n");
                system("pause");
}
Ejemplo #4
//condicional simple
#include <stdio.h>
main(){
                int a, b, mayor;
                printf("Escriba un numero: \n");
                scanf("%d", &a);
                printf("Escriba otro: \n");
                scanf("%d", &b);
                mayor=(a>b) ? a:b;
                printf("El numero mayor es: \n %d", mayor);
}

Ejemplo #5
// if anidados
#include<stdio.h>
main(){
                int num;
                printf("Escriba un numero: \n");
                scanf("%d", &num);
                if (num<0)
                               printf("El número es negativo. \n");
                else
                               if (num==0)
                                               printf("El número es cero. \n");
                               else
                                               printf("El número es positivo. \n");
}



Guía de estudio
1. ¿Qué es un lenguaje de programación?
2. Enumere y explique los niveles de lenguaje de programación
3. ¿cuáles son los 3 tipos de errores a la hora de programar?
4. ¿qué es error de sintaxis?
5. ¿qué es error de lógica, y por qué son difíciles de detectar?
6. ¿qué es error de ejecución?
7. ¿para qué sirve el diagrama de flujo?
8. ¿para qué sirve el Pseudocódigo?
9. ¿qué técnicas incorpora la programación estructurada?
10. ¿de qué se trata la programación orientada a objetos?
11. ¿en qué consiste la documentación?
12. ¿Por qué es importante la inicialización de variables y contadores?
13. ¿Para qué sirve el indentado o sangría?





No hay comentarios:

Publicar un comentario

Ejercicios de Derivadas

Aqui les dejo unos ejercicios de derivadas  para que practiquen. Aqui un post donde aprenderan a utilizar la reglade la cadena Tabla d...