Teoría Flashcards
Beneficios de saber programar
Mayor capacidad de atención y concentración, comprensión, capacidad de cálculo y lógica, solución de problemas lógicos
Algoritmo
Conjunto de pasos, acciones o instrucciones necesarios para lograr un resultado o resolver un problema
Características de un algoritmo
Finito: tiene inicio y fin
Preciso: los mismos datos de entrada serán los de salida
Ordenado: las instrucciones se ejecutan una después de otra en un orden específico
Definido: no ambigüedades, cada instrucción atiende a un solo problema del algoritmo
Programa
Algoritmo escrito en lenguaje máquina
Instrucciones que una computadora ejecuta para realizar una tarea
Código fuente
Conjunto de instrucciones o algoritmo escrito en lenguaje de programación
Lenguaje máquina
Conjunto de instrucciones ejecutadas directamente por un CPU
Compilador
Programa que lee código fuente escrito en un lenguaje (lenguaje fuente) y traducirlo en un equivalente en otro lenguaje (lenguaje destino)
Diagrama de flujo
Algoritmo descrito mediante formas geométricas y flechas que las unen
Alternativa al pseudo código
Lenguajes de programación
C/C++, Java, Python, Pascal, cobol, visual básico, c#, visual .net, php, ruby, javascript.
Un lenguaje de programación sin compilador
No sirve de mucho
Lenguaje humano
Pseudocodigo
- inicio
- Leer
- Blabla
Lenguaje de programación
Código fuente
Se logra pasar de código fuente a lenguaje máquina mediante el
Compilador
Lenguaje maquina
Programa (.exe)
Lenguajes de programación
Permiten a los programadores introducir órdenes a la computadora
Los lenguajes de programación se clasifican en:
Área de aplicación 📚
Nivel de abstracción 🔬
Paradigma de programacion ❓❔
El área de aplicación se divide en:
- Procesamiento de negocios 📈
- software de nómina, ventas en línea, punto de venta (cobol, clipper, visual basic, Delphi, java SE) - Científicos: 🦠
- efectuar cálculos complejos de forma rapida y precisa, análisis de datos (fortran, matlab) - De sistemas 💻
- orientados a la programación de sistemas operativos, compiladores, controladores de dispositivos, bases de datos (ASM, C y C++) - De procesos (script) 🔚🔝🔚
- generar programas que controlen la ejecución de otros programas, respuestas automáticas, respaldar archivos cada cierto tiempo (Python, TCL, pero, VBScript, PHP)
Nivel de abstracción se divide en:
- Bajo nivel
- Alto nivel
- Medio nivel
Bajo nivel de abstracción
- Bajo nivel:
- más próximos a la arquitectura de la máquina
- son más rápidos que los de nivel superior
- utilizan menos memoria y el ejecutable es más pequeño
- no son plegables, hechos para un procesador en particular
- difíciles de escribir, código fuente largor
Alto nivel de abstracción
Más próximos al programador
Ejemplos: pascal, fortran, matlab, lenguajes para web
Mayor facilidad en el desarrollo
Independientes de la arquitectura de la computadora
Necesitan un traductor (compilador) que convierta de código fuente a lenguaje máquina
Medio nivel de abstracción
Son más fáciles de comprender que los de bajo nivel y genera programas más eficientes que los de alto nivel
Necesitan traductor
Lenguajes C, C++
Facilita el manejo de memoria y el control de los distintivos
Paradigma de programación se divide en:
Imperativos (procedimiental) 📶
- el programa es una serie de pasos para realizar una operación, recibir una entrada de datos, desplegar una salida
Implementaciones de algoritmos
La funcion es la unidad fundamental de la prog
C/C++, fortran, cobol, pascal, basic.
Funcionales 🔢
El programa es una colección de funciones matemáticas con entrada y resultado
Examina el resultado que debe arrojar una función
Lisp, haskell, logo.
Lógicos 💱
Colección de reglas en forma de proposiciones lógicas
Prolog, mercury, alf
Área de aplicación de:
Windows, solaris, linux, mySQL
De sistemas
Área de aplicación de:
Amazon
Procesamiento de negocios
Área de aplicación de:
Fortran, matlab
Científicos
Área de aplicación de:
Php, visual basic, perl, C++, python, ruby, java, JavaScript
De procesos o script
Estructura de un algoritmo
Entrada
Proceso/ algoritmo
Salida
Comentarios en un programa
Con # en pyhton
Reglas de codificación
Los comentarios de varias líneas inician con comillas y terminan con ellas
La sangría/indentacion
No ignora de puntuación a final
Sensible a mayúsculas
Errores de programación
Sintaxis
Ejecución
Lógicos
Pseudocodigo
Algoritmo escrito en propias palabras
Lenguaje humano
Programador
Quien desarrolla programas computacionales
Lenguaje humano es igual a _____ que mediante el _____ pasa a código fuente que es igual a ____ que mediante un ____ pasa al programa que es igual a ____
Lenguaje humano, programador, lenguaje de programación, compilador y lenguaje máquina
Lenguaje humano
Pseudocodigo
Se usa para pasar del pseudocodigo al código fuente
Programador
Lenguaje de programación es
Código fuente
Permite el paso de código fuente a un programa
Compilador
Programa es
Lenguaje máquina
Paradigma de programación se divide en:
Imperativos
Funcionales
Lógicos
Del paradigma de programación
Los funcionales son:
Colección de funciones matemáticas con entrada (dominio) y resultado (intervalo)
Lisp, haskell, logo
De los paradigmas de programación los lógicos:
El programa es una colección de reglas en forma de proposiciones lógicas
Prolog, mercury, alf
Del paradigma de programación los imperativos son:
El programa es una serie de pasos donde cada uno de los cuales es una orden para una operación, entrada de datos o salida.
Implementaciones e algoritmos
Funcion es la unidad fundamental
Fortran, cobol, pascal, basic
Comentarios
Se escriben con #
Terminan hasta el fin del renglón
Los de varias líneas inician con “ y terminan con “
Identificadores
Nombres que identifican a los elementos como variables y funciones en un programa
Los identificadores no pueden:
Ser palabras reservadas
Deben procurar iniciar con letra o guion bajo
Deben ser letras, dígitos y guion bajo
No guion o espacios
Palabras reservadas
And Class Elif Finally If Lambda Or True Yield As Continue def Else From Import None Pasa Try Assert Del Except For In Nonlocal not Raise While Break False Global Is Return With
Tipos de datos:
Definen el tipo de información que se podrá almacenar
Simples (flotantes o reales)
Compuestos (estructurados)
Simples o flotantes o reales
Almacenan un solo dato a la vez Decimal Carácter o texto Entero Booleano
Que es booleano
Verdadero o falso
Tipo de dato compuesto o estructurado:
Puede almacenar varios datos a la vez, varios datos simples
Cadena de caracteres
Listado/cola
Matriz
Variables
Todo aquello que puede tener asignado un valor que puede cambiar durante la ejecucion del programa
Las variables tienen:
IDENTIFICADOR que no puede cambiar
VALOR que puede cambiar
Tipos de operadores
Asignación Aritméticos Aumentados Relacionados Condicionales o lógicos
Operador de asignación
El igual a (=)
Operadores aritméticos
Suma, resta, multiplicación, división decimales, división enteros, potencia, residuo
Para división de decimales se usa
/
Para división enteros se usa
//
Para un salto de renglón dentro de un print se usa:
\n
Para potencia se usa
**
Para residuo se usa
%
El resultado del residuo es
El sobrante de la realización de una división (el residuo)
Precedencia de operadores aritméticos
Potencia
Multiplicación
División
Suma y resta
Concedido. Y redondeo
Si uno de los operandos es decimal el resultado será decimal
Si queremos obtener la parte entera de un decimal aplicamos
Int()
Si queremos redondear aplicamos
Round()
Si queremos convertir una cadena de caracteres que representan un número en un número utilizamos
Int() o eval()
Operadores relacionarles
Comparan valores numéricos lógicos o caracteres
Devuelven valor lógico (true, false)
Todos son binarios
If, For, do, while
Igual a es ____ y no igual es ___
== y !=
AND
Devuelve true si ambos son true
OR
Devuelve true si algun operando es true
Not
Invierte el valor lógico del operando
Sintaxis para solicitar al usuario el valor de una variable
Input
El dato se almacena en la variable después de presionar
Enter
Diagrama de flujo se realiza
De arriba a abajo
De izquierda a derecha
Estructura selectiva
Permite al programa elegir uno de varios caminos posibles
Tipos de estructuras selectivas
Simples
Dobles
Múltiples
Anidadas
Estructuras selectivas simples
Se evalúa una expresión lógica
Si es V- flujo alternativo
Si es F- flujo normal
Estructuras selectivas dobles
Evalúa una expresión lógica
Si es V- ejecución alternativa
Si es F ejecución normal
La diferencia de las estructuras simples y dobles
Las dos tienen una condición
Pero solo las dobles tienen dos procesos
La simple un proceso
Y las dos un resultado
Anidacion de estructuras
Una estructura dentro de otra
(If dentro de if, while dentro de while…)
Colocar un algoritmo dentro de otro con sangría
Operadores conjunción
And
Operador de disyunción
Or
Estructuras selectivas
Elif
Combinación de else y un if
Errores de programación
Sintaxis
Ejecución
Lógicos
Se pueden realizar en el print: print(x*y)
Operaciones básicas
Operador de asignación binario
Variable1=valor
Operadores de asignación aumentados
Si se quiere hacer
A= A +8
Operador +=
(A+=8)
Símbolo y después el igual
Después el número que se quiere sumar, restar etc
Operadores relacionales
Menor que, menor igual que mayor que
Estructuras selectivas
(If):
(If-else):
(If-elif-else):
Simple
Doble
Anidada o múltiple