1. Programación
/*
holamundo.c
La programación es (c) Envite, 2004
para el wikilibro "Programación en C (fundamentos)"
el proceso de bajo licencia FDL, adaptado del Dominio Público
*/
diseñar, #include <stdio.h> /*Necesario para la función printf()*/
void holamundo(void) /*Función donde se ejecuta la
codificar, depurar y lógica del programa*/
{
printf("Hola Mundon"); /*imprime la cadena*/
mantener el código return; /*sale de la función*/
}
fuente de programas int main(void) /*Función principal del programa*/
{
holamundo(); /*llamada a la función que lleva el peso*/
computacionales. return(0); /*sale del programa: correcto*/
}
$ ./holamundof Hola mundo $
Edwin Fabian Cuervo Silva 1103
2. Lenguaje de alto nivel
Un lenguaje de if( numero > 0 ) printf( "El
programación de alto nivel de número es positivo" )
abstracción se caracteriza por
with Ada.Text_IO,
expresar los algoritmos de una
Ada.Strings.Unbounded;
manera más cercana a la
use Ada.Text_IO, ,
capacidad cognitiva humana, en
Ada.Strings.Unbounded;
lugar de a la capacidad ejecutora
procedure Hola_Mundo is
de las máquinas. Los lenguajes de
Rist : Unbounded_String :=
alto nivel se crearon para que el
To_Unbounded_String
usuario común pudiese solucionar
("¡Hola, mundo!"); begin Put
un problema de procesamiento de
(Rist); end Hola_Mundo;
datos de una manera más fácil y
rápida
Edwin Fabian Cuervo Silva 1103
3. Lenguaje macro
Sub incrementa
Es un lenguaje de Dim oTablas As Object
programación el cual Dim oTabla As Object
Dim oCelda As Object
permite desarrollar o Dim numfra As String
' localiza celda
programar pequeñas oTablas = ThisComponent.getTextTables()
oTabla = oTablas.getByName("encabezado")
aplicaciones, así como oCelda = oTabla.getCellByName("B3")
automatizar muchas ' obtiene numfra
numfra = oCelda.getString
tareas que de otro modo ' incrementa numfra
numfra = str$(val(numfra) + 1)
llevarían muchísimo ' escribe numfra
tiempo o serían oCelda.setString(numfra)
End Sub
prácticamente imposibles
de realizar. Edwin Fabian Cuervo Silva 1103
4. Lenguajes de alto nivel Clasificación
Lenguajes de programación imperativos: entre ellos tenemos el
Cobol, Pascal, C y
Ada. program suma; uses
Lenguajes de programación declarativos: el Lisp y el Prolog.
Lenguajes de programación orientados a objetos: el Smalltalk y
el C++.
crt; var x,s,r:integer;
Lenguajes de programación orientados al problema: son
aquellos lenguajes específicos para gestión.
Lenguajes de programación naturales: son los nuevos lenguajes
begin clrscr;
que pretender aproximar el diseño y la construcción de programas
al lenguaje de las personas. writeln('Ingrese un
Otra clasificación de los lenguajes de programación de alto nivel, es
teniendo en cuenta el desarrollo de las computadoras según sus
diferentes generaciones:
numero'); readln(x);
Lenguajes de programación de primera generación: el lenguaje
máquina y el ensamblador writeln('Ingrese otro
Lenguajes de programación de segunda generación : los
primeros lenguajes de programación de alto nivel imperativo
(FROTRAN, COBOL).
numero'); readln(s);
Lenguajes de programación de tercera generación: son
lenguajes de programación de alto nivel imperativo pero mucho más
utilizados y vigentes en la actualidad (ALGOL 8, PL/I, PASCAL,
r:=x+s; writeln('la
MODULA)
Lenguajes de programación de cuarta generación: usados en suma es: ',r); readln;
aplicaciones de gestión y manejo de bases de dados (NATURAL,
SQL).
Lenguajes de programación de quinta generación: creados para
end.
la inteligencia artificial y para el procesamiento de Edwin Fabian
lenguajes Cuervo Silva 1103
naturales (LISP, PROLOG).
5. Lenguaje ASembler
Es un lenguaje de Programa que imprime un string en la pantalla
programación de bajo nivel para model small
los computadores, microprocesador .stack
es, microcontroladores, y otros .data
circuitos integrados programables. Cadena1 DB 'Hola Mundo.$'
.code
Implementa una representación
Inicio del programa
simbólica de los códigos de
programa:
máquina binarios y otras
MOV AX, @data
constantes necesarias para
MOV DS, AX
programar una arquitectura dada
MOV DX, offset Cadena1
de CPU y constituye la MOV AH, 9
representación más directa INT 21h
del código máquina específico para INT 20h
cada arquitectura legible por un end programa
programador.
Edwin Fabian Cuervo Silva 1103
6. Programación orientada a objetos
Es un paradigma de class Punto heredada
programación que de Objeto_Dibujable{
usa objetos y sus atributos:
interacciones, para int x,y
diseñar aplicaciones y métodos :
programas informáticos. fijarX(int nuevoX)
Está basado en varias obtenerX()
técnicas, fijarY(int nuevoY)
incluyendo herencia, abstr obtenerY()
acción, polimorfismo y print()//re definida para Punto
encapsulamiento.
Edwin Fabian Cuervo Silva 1103
7. Eventos
Es un paradigma de
programación en el While (true){
que tanto la estructura Switch (event){
como la ejecución de Case
los programas van mousse_button_down:
determinados por los case mouse_click:
sucesos que ocurran case keypressed:
en el sistema,
case Else:
definidos por el
usuario o que ellos
mismos provoquen. Fabian Cuervo Silva 1103
Edwin
8. Algoritmo
Es un conjunto Inicio
PASO 1. Colocar los números el primero
prescrito de encima del segundo, de tal manera que las
unidades, decenas, centenas, etc., de los
instrucciones o reglas números queden alineadas. Trazar una línea
debajo del segundo número.
bien definidas, PASO 2. Empezar por la columna más a la
derecha.
ordenadas y finitas PASO 3. Sumar los dígitos de dicha
columna.
que permite realizar PASO 4. Si la suma es mayor a 9 anotar un
1 encima de la siguiente columna a la
una actividad izquierda y anotar debajo de la línea las
unidades de la suma. Si no es mayor anotar
mediante pasos la suma debajo de la línea.
PASO 5. Si hay más columnas a la
sucesivos que no izquierda, pasar a la siguiente columna a la
izquierda y volver a 3.
generen dudas a PASO 6. El número debajo de la línea es la
solución.
quien deba realizarEdwin Fabian Cuervo Silva 1103
Fin
9. Etapas de un algoritmo
La descripción de un algoritmo usualmente se hace en tres niveles:
Descripción de alto nivel. Se establece el problema, se selecciona
un modelo matemático y se explica el algoritmo de manera verbal,
posiblemente con ilustraciones y omitiendo detalles.
Descripción formal. Se usa pseudocódigo para describir la
secuencia de pasos que encuentran la solución.
Implementación. Se muestra el algoritmo expresado en un lenguaje
de programación específico o algún objeto capaz de llevar a cabo
instrucciones.
Edwin Fabian Cuervo Silva 1103
10. Diagramas de flujo
Los diagramas de flujo
son descripciones
gráficas de algoritmos;
usan símbolos
conectados con
flechas para indicar la
secuencia de
instrucciones y están
regidos por ISO.
Edwin Fabian Cuervo Silva 1103
11. Símbolos del diagrama de flujo
Expresa Inicio o Fin de un Programa.
Expresa operación algebraica o de
asignación.
Expresa condiciones y asociaciones alternativas de
una decisión lógica.
Expresa condición y acciones alternativas de una
decisión numérica.
Entrada / Salida: Representa cualquier tipo de Fuente
de entrada y salida
Entrada: Lectura de datos por tarjeta perforadas.
Conector dentro de página.
Representa resultado mediante un reporte impreso
Conector fuera de página.
Expresa operación cíclica repetitiva.
Expresa proceso de llamada a una subalterna.
Representa datos grabados en una cinta magnética.
Almacenamiento en línea Disco Magnético.
Edwin Fabian Cuervo Silva 1103
12. Variables
Una variable es un elemento de
una fórmula, proposición o algoritmo que #include <stdio.h>
puede adquirir o ser sustituido por un valor
cualquiera (siempre dentro de su universo).
Los valores que una variable es capaz de main()
recibir, pueden estar definidos dentro de un
rango, y/o estar limitados por razones o
condiciones de pertenencia, al universo que
{ int a = 10;
les corresponde (en estos casos, el universo
de la variable pasa a ser un subconjunto de printf( "Dirección de a =
un universo mayor, el que tendría sin las
restricciones). %p, valor de a = %in",
Al declarar una variable estamos diciendo al
ordenador que reserve una parte de la
memoria RAM para almacenarla. Cada vez
&a, a ); }
que ejecutemos el programa la variable se
almacenará en un sitio diferente; eso no lo
podemos controlar; depende de la memoria
disponible y de otros varios factores.
Edwin Fabian Cuervo Silva 1103
13. Constantes
En programación, una
constante es un valor que Por ejemplo:
no puede ser alterado El valor de pi = 3.1416
durante la ejecución de un
programa. #include <stdio.h>
Una constante corresponde #define PI 3.1415926
a una longitud fija de un
área reservada en la int main()
memoria principal del
ordenador, donde el printf("Pi vale %f", PI);return
programa almacena valores 0; }
fijos.
Edwin Fabian Cuervo Silva 1103
14. Operadores Aritméticos
Operadores aritméticos unarios:
+ más unitario. int ai[] = {2, 3};
++ Incremento unitario (dos clases) int* ptr = ai;
- menos unitario.
int r1 = +ai[0];
-- Decremento unitario (dos clases)
Operadores aritméticos binarios: int r2 = -ai[1]
% Resto o módulo int r3 = ai[0] + ai[1];
* Multiplicación
int r4 = ai[1] - ai[0]
/ División.
+ Suma binaria. int r5 = ai[0] + -ai[1];
- Resta binaria. int r6 = *ptr + -*++ptr;
Edwin Fabian Cuervo Silva 1103
15. Operadores de Relación
public class RelacionApp {
Menor que, <. public static void main(String[] args) {
int x=8;
Menor o igual que, <=. int y=5;
boolean compara=(x<y);
Mayor que, >. System.out.println("x<y es "+compara);
compara=(x>y);
Mayor o igual que, >=. System.out.println("x>y es "+compara);
Igual que, =. compara=(x==y);
System.out.println("x==y es "+compara);
Distinto que, /=. compara=(x!=y);
System.out.println("x!=y es "+compara);
compara=(x<=y);
System.out.println("x<=y es "+compara);
compara=(x>=y);
System.out.println("x>=y es "+compara);
Edwin Fabian Cuervo Silva 1103
16. Operadores lógicos
int m[3] = {0,1,2};
&& AND (el resultado es int x = 0;
verdadero si ambas expresiones if (m && x) cout << "Cierto.";
else cout << "Falso.";
son verdaderas) #include <iostream.h>
bool alto = true, bajo = false, blanco = true, negro = false;
|| OR (el resultado es verdadero
int main (void) {
si alguna expresión es if (alto || bajo) { cout << "Uno cierto" << endl; }
verdadera) else cout << "Uno falso" << endl;
if (alto || blanco) { cout << "Dos cierto" << endl; }
! NOT (el resultado invierte la else cout << "Dos falso" << endl;
if (bajo || negro) { cout << "Tres cierto" << endl; }
condición de la expresión) else cout << "Tres falso" << endl;
#include <iostream.h>
AND y OR trabajan con dos bool alto = true, bajo = false;
operandos y retornan un valor int main (void) {
lógico basadas en las if (alto) { cout << "Uno cierto" << endl; }
else cout << "Uno falso" << endl;
denominadas tablas de verdad. if (!alto) { cout << "Dos cierto" << endl; }
else cout << "Dos falso" << endl;
El operador NOT actúa sobre un if (!bajo) { cout << "Tres cierto" << endl; }
operando else cout << "Tres falso" << endl;
Edwin Fabian Cuervo Silva 1103
17. Tabla de descomposición de los
operadores lógicos
Palabra clav
Símbolo Descripción
e
and && Operador Y lógico
or || Operador O lógico
not ! Operador negación lógica
bitand & Operador AND entre bits
xor ^ Operador OR exclusivo entre bits
bitor | Operador OR inclusivo entre bits
compl ~ Operador complemento a uno de bits
and_eq &= Asignación compuesta (AND entre bits)
xor_eq ^= Asignación compuesta (XOR entre bits)
or_eq |= Asignación compuesta (OR entre bits)
not_eq != Operador relacional de desigualdad
Edwin Fabian Cuervo Silva 1103
18. Programación HTML
Es el lenguaje de
marcado predominante para la
elaboración de páginas web. Es
usado para describir la estructura y el
contenido en forma de texto, así
como para complementar el texto con
objetos tales como imágenes. El
HTML se escribe en forma de
«etiquetas», rodeadas por corchetes
angulares (<,>). HTML también
puede describir, hasta un cierto
punto, la apariencia de un
documento, y puede incluir
un script (por ejemplo Java Script), el
cual puede afectar el comportamiento
de navegadores web y otros
procesadores de HTML.
Edwin Fabian Cuervo Silva 1103
19. Etiquetas
<HTML>: define el inicio del documento HTML, le
indica al navegador que lo que viene a continuación
debe ser interpretado como código HTML.
<head>: define la cabecera del documento HTML;
esta cabecera suele contener información sobre el
documento que no se muestra directamente
al usuario.
<title>: define el título de la página. Por lo general,
el título aparece en la barra de título encima de la
ventana.
<body>: define el contenido principal o cuerpo del
documento. Esta es la parte del documento HTML
que se muestra en el navegador; dentro de esta
etiqueta pueden definirse propiedades comunes a
toda la página, como color de fondo y márgenes
<Center>: Alinea en forma central lo que esté entre
ellos
<h1> a <h6>: encabezados o títulos del documento
con diferente relevancia.
Edwin Fabian Cuervo Silva 1103