martes, 26 de febrero de 2013

Práctica 7 - Unidad 2


Práctica 6 - Unidad 2

SECCIÓN A


SECCIÓN B


Funciones Básicas de Entrada Y Salida


Introducción


En C no existe ninguna palabra clave para realizar la entrada y salida de datos (E/S). Se realizan a través de funciones de biblioteca (concretamente, la biblioteca stdio.h).
Las funciones principales que realizan la entrada y salida sin formato son:getchar(): Lee un carácter del teclado. Espera hasta que se pulsa una tecla y entonces devuelve su valor.
  

Funciones Básicas de Entrada Y Salida


La E/S por consola se refiere a todas las operaciones que se producen en el teclado y la pantalla de la computadora. A continuación comentaremos algunas funciones básicas de entrada y salida. Los prototipos de las que forman parte del estándar ANSI C se encuentran dentro de la librería stdio.h.
printf: 
Definida dentro de ANSI C.
El prototipo de printf es: int printf(const char *formato, listaDeArgumentos);
Como verán, printf devuelve un número entero. Este representa el número de caracteres escritos. Cualquier número negativo indica que ocurrió un error.
Esta función escribe en el flujo estándar de salida stdout (o sea, por pantalla ) los argumentos que componen “listaDeArgumentos” según las especificaciones dadas por la cadena apuntada por “formato”. La cadena “formato”, puede contener tanto letras como códigos que describen la forma en que se muestran los argumentos. Existen varios códigos, pero a continuación sólo les comentaré los más usados:
%c Se usa para imprimir un caracter
%i Se usa para imprimir un entero en decimal con signo.
%d Se usa para imprimir un entero en decimal con signo.
%f Se usa para imprimir un número en coma flotante (real ).
%x Se usa para imprimir números hexadecimales.
%o Se usa para imprimir números en Octal.
%s Se usa para imprimir una cadena de caracteres.
%e Se usa para imprimir un número en notación científica.
Para su información, existen modificadores que pueden especificar con más detalle de qué forma se quiere que se muestren los datos con la finalidad de poder ordenarlos. Esto quiere decir que se puede modificar el código (colocando los modificadores entre el signo % y el carácter de formato) para que muestre por ejemplo una determinada longitud del campo, cuantas posiciones decimales se mostrarán o un indicador de ajuste a la izquierda. Por ejemplo, %-10.2f ajusta un número en coma flotante por la izquierda con dos posiciones decimales en un campo de diez caracteres. No profundizaremos en este punto.
Ejemplos:
printf(“Hola”); // Imprime la palabra Hola por pantalla ( sin las comillas ).

printf(“Hola\n”); // Igual al anterior pero imprime imprime el retorno de carro- Nueva línea

i = 10;
printf(“Número entero %i \n”, i); // Imprime “Numero entero 10”
c = 'x';
printf(“Caracter %c y número %i\n”, c, i); // Imprime “Caracter x y número 10”

Nuestro Primer programa: El clásico Hola Mundo.

#include<stdio.h>

int main(void) {
printf(“Hola Mundo!\n”);
return 0;
}

Al compilar y ejecutar este programa, lo que hará es imprimir la frase “Hola Mundo!” por pantalla ( sin las comillas ).

Es la función de entrada definida por el ANSI C. Esta función se encarga de obtener un carácter desde el teclado. El problema de esta función es que guarda en un buffer la entrada hasta que se presiona la tecla ENTER (y al hacerlo, ella tomará sólo el primer carácter del buffer). La razón de esto es que los sistemas UNIX originales usaban un buffer de línea para entrada por terminal (lo que quiere decir que había que introducir  un retorno de carro para que lo que se hubiese escrito fuese efectivamente enviado al computador ). Esta función está en desuso debido a que los programas modernos requieren cierto grado de interactividad y el hecho de tener que esperar a enviar un ENTER para procesar suele ser desconcertante. Aun así, siempre es incluida en los compiladores por razones de portabilidad. Existe una función no ANSI más conveniente a la hora de esperar un carácter por teclado que está incluida en la librería de Turbo C conio.h que veremos más adelante.

El prototipo del getchar() es: int getchar(void);

Un ejemplo de su uso:

char ch;
ch = getchar();

getche: 
No es ANSI C sino que está definida dentro de una librería de Borland (quien desarrollo Turbo C, Turbo C++ y Borland C++) llamada conio.h. Espera a que el usuario presione una tecla por teclado y esta función lee el carácter presionado sin necesidad de esperar el ENTER y el “eco” de la misma es presentado por pantalla.

El prototipo del getche() es: int getche(void);

Un ejemplo de su uso:

char ch;
ch = getche(); // Asigna a ch el caracter presionado por teclado y lo muestra por pantalla.
getch: 
No es ANSI C sino que está definida dentro de una librería conio.h. Espera a que el usuario presione una tecla por teclado y esta función lee el caracter presionado sin necesidad de esperar el ENTER pero a diferencia del getche(), ésta no muestra el “eco” por pantalla.

El prototipo del getch() es: int getch(void);

Un ejemplo de su uso:

char ch;
ch = getch(); // Asigna a ch el caracter presionado por teclado. No muestra nada por pantalla.

 Definida dentro de ANSI C. Imprime un caracter en pantalla en la posición actual del cursor.
El prototipo de putchar es: int putchar(int c); donde c es el caracter a imprimir. Esta función devuelve un parámetro ya que el programador podría necesitar verificar que la función haya sido ejecutada con éxito. Si es cierto, devuelve el mismo caracter c, de lo contrario devolverá un EOF (Una macro definida en stdio.h que significa End Of File. Lo veremos más adelante en el curso).

Un ejemplo de su uso:

char ch;
ch = 'S';
putchar(ch); // Lo que imprime el caracter 'S' por pantalla.

scanf: 
Definida dentro de ANSI C.
El prototipo de scanf es: int scanf(const char *formato, listaDeArgumentos);
Es la función encargada de leer datos desde el buffer estándar de entrada stdin (teclado). Puede leer todos los tipos de datos que hayan. Es la función inversa de printf();
Los códigos para representar los datos son los mismos que en printf. Por ejemplo:
scanf(“%i”, &i); // OJO con el signo '&'
Especifica que se espera del buffer estándar un número entero y éste será almacenado dentro de la variable i. En realidad el símbolo '&' podría traducirse como: “en la dirección de memoria que contiene la variable 'i'”. Sobre esto profundizaremos en punteros. Lo que se está diciendo que se almacene el valor dentro de una localidad de memoria. Este signo NO puede faltar a menos que hablemos de cadenas y esto tiene su explicación que lo veremos cuando estudiemos Cadenas más adelante.
Otra cosa es que una sólo orden puede ser usada para recibir varios datos al mismo tiempo. Por ejemplo:
             scanf(“%i%c”, &i, &ch);
espera a que el usuario introduzca algo como “10 a” y luego ENTER por teclado para almacenar 10 en i y la letra a en ch.


Definida dentro de conio.h. Esta función cambia el color de las letras que se muestran por pantalla.
Su prototipo es: void textcolor(int color);
Donde color es un número que representa el color deseado. También existen unas MACROS definidas dentro de conio.h que representan el color. Estos son:

Macro Equivalente entero
BLACK 0
BLUE 1
GREEN 2
CYAN 3
RED 4
MAGENTA 5
BROWN 6
LIGHTGRAY 7
DARKGRAY 8
LIGHTBLUE 9
LIGHTGREEN 10
LIGHTCYAN 11
LIGHTRED 12
LIGHTMAGENTA 13
YELLOW 14
WHITE 15
BLINK 128

El BLINK es para hacer al cursor parpadeante.
Ejemplo:

textcolor(RED);
hará que todo el texto que se imprima a continuación aparezca en rojo.

Definida dentro de conio.h. Esta función cambia el color del fondo de pantalla sobre el cual se muestran las letras.
Su prototipo es: void textbackground(int color);
El color de fondo sólo puede ser de los 8 principales colores así que sólo aplican las 8 primeras MACROS mencionadas en textcolor (de 0 a 7 ).
Ejemplo:
textbackground(RED); // El color de fondo será Rojo
textcolor(BLUE); // El color del texto será Azul.
clrscr(); // Borra la pantalla pero debido a que el color de fondo es rojo,
// toda la pantalla se verá roja.
printf(“Texto\n); // Imprime la palabra “Texto” en Azul sobre el fondo rojo.

 No está definida por el ANSI C. Esta función se encuentra dentro de la librería conio.h de Borland.

Esta función borra todo el contenido de la ventana de texto actual. El prototipo de clrscr es: void clrscr(void);
Su forma de uso es:
clrscr();

No está definida por el ANSI C. Esta función se encuentra dentro de la librería conio.h de Borland.
El prototipo de gotoxy es: void gotoxy(int x, int y);
Esta función coloca al cursor en la posición de pantalla apuntada por las coordenadas x e y dentro de la pantalla de texto actual. Una pantalla estándar de DOS contiene 80 columnas por 25 filas. Si las coordenadas no son válidas, no se hace nada.
Ejemplo:
clrscr();
gotoxy(20,10);
putchar('*');
borra la pantalla, se posiciona en la columna, fila 10 e imprime el caracter *.
wherex: 
No está definida por el ANSI C. Esta función se encuentra dentro de la librería conio.h de Borland.
El prototipo de wherex es: int wherex(void);
Retorna la columna en la que se encuentra posicionado el cursor relativa a la ventana de texto actual.
wherey: 
No está definida por el ANSI C. Esta función se encuentra dentro de la librería conio.h de Borland.

El prototipo de wherey es: int wherey(void);
Retorna la fila en la que se encuentra posicionado el cursor relativa a la ventana de texto actual.
window: 
No está definida por el ANSI C. Esta función se encuentra dentro de la librería conio.h de Borland.
El prototipo de window es: void window(int izq, int arr, int der, int aba);
Esta función se usa para crear una ventana de texto rectangular con coordenadas superior-izquierda e inferior-derecha dadas por izq,arr y der,aba. Si las coordenadas no son válidas, no se hace nada.
Es por esta función que he estado comentando en las funciones anteriores: “dentro de la pantalla de texto actual” ya que luego de usada esta función, todas las operaciones como clrscr, cprintf, gotoxy, etc, son relativas a esta nueva ventana.
Ejemplo:

window(10, 10, 60, 15); // crea una ventana cuyas esquinas son (10,10) y (60,15)
gotoxy(2, 3); // Se coloca en la posición (2,3) dentro de la ventana anterior.

No está definida por el ANSI C. Esta función se encuentra dentro de la librería conio.h de Borland.
El prototipo de cprintf es: int cprintf(const char *fmt,...);
Hace lo mismo que printf pero dentro de la ventana de texto actual.
Siguiendo el mismo ejemplo anterior, si añadimos:

cprintf(“Punto (2,3) de la ventana activa\n\r”);
imprimiría dentro de la ventana definida en la posición dada la frase: “Punto (2,3) de la ventana activa”.
Debe ponerse también \r ya que cprintf no interpreta el \n como un par \r\n como hace el printf. \r es retorno de carro.



Conclusiones


En C un archivo puede ser cualquier cosa, desde un archivo de disco a un terminal o una impresora. Se asocia una secuencia con un archivo específico realizando una operación de apertura, una vez que está abierto, la información puede ser intercambiada entre éste y el programa. El puntero a un archivo es el hilo que unifica el sistema de E/S con buffer. Un puntero a un archivo es un puntero a una información que define varias cosas sobre él, incluyendo el nombre, el estado y la posición actual del archivo. En esencia, el puntero a un archivo identifica un archivo en disco específico y utiliza la secuencia asociada para dirigir el funcionamiento de las funciones de E/S con buffer.

Práctica 5 - Unidad 2


Práctica 4 - Unidad 2


Práctica 3 - Unidad 2


Variables Y Constantes


Variables



Para poder utilizar algoritmos con diferentes conjuntos de datos iniciales, se debe establecer una independencia clara entre los datos iniciales de un problema y la estructura de su solución. Esto se logra mediante la utilización de Variables (cantidades que se suelen denotar con letras –identificadores- y que pueden tomar cualquier valor de un intervalo de valores posibles).
En programación, las Variables son espacios de trabajo (contenedores) reservados para guardar datos (valores).
El valor de una Variable puede cambiar en algún paso del Algoritmo o permanecer invariable; por lo tanto, el valor que contiene una variable es el del último dato asignado a esta. En el Algoritmo de la Ilustración 2-4, "área" es un ejemplo de Variable; en el paso 5 se guardó en ella el resultado de multiplicar "base" por "altura" y en el paso 6 se utilizó nuevamente para guardar el valor de dividir su propio contenido ("área") entre la Constante "div".
MicroMundos ofrece tres tipos de variables: Locales, Globales y de Estado. Las primeras retienen su valor el tiempo que dure la ejecución del procedimiento en el cual se utiliza. Las variables Locales se pueden crear con las primitivas asigna y local o en la línea del título de un procedimiento.
En MicroMundos se utiliza el comando da para asignar un valor a una variable o constante. La sintaxis es: da “nombreVariable valor que es equivalente a la forma nombreVariable=Valor que se utiliza en la mayoría de los lenguajes de programación. Para utilizar el valor almacenado en una variable o constante se debe anteponer dos puntos (:) al nombre; en :nombreVariable los dos puntos significan “no quiero que ejecutes el comando nombreVariable; quiero el valor almacenado en nombreVariable”.
Las variables Globales se crean con los comandos da o nombra. Estas variables solo pierden su valor cuando se cierra MicroMundos o cuando se borran con el comando bnombres.
En Scratch, se debe hacer clic en el botón “Variables” de la paleta de bloques.

Luego se hace clic en el botón “Nueva variable” y se asigna un nombre a la variable, en este caso “Puntaje”. Cuando se genera una variable, aparecen los bloques correspondientes a ella. Se puede escoger si la variable es para todos los Objetos (global) o solo para un Objeto (local).

Con el botón “Borrar una variable” se borran todos los bloques asociados con una variable.

Al hacer clic sobre el cuadrito de selección, se empieza a Informar el valor de la variable “Puntaje” en el escenario.

Incrementa la variable en una cantidad determinada (Si se tiene más de una variable, utilice el menú desplegable para seleccionar el nombre de la variable que se desea modificar).
Inicializa la variable a un valor específico.
Muestra el monitor de la variable en el escenari o.

Esta opción esconde el monitor de la variable para que no aparezca en el escenario.


Observe que las variables :valorParámetro y :variableLocal no conservan su valor por fuera del procedimiento tipoVariable, mientras que la variable :variableGlobal es de tipo global y conserva su valor
(150) por fuera del procedimiento donde fue creada.
En MicroMundos también existen las variables de estado que permiten conocer o modificar los componentes más importantes de una tortuga, un control o una caja de texto.

CONSTANTES


Las Constantes se crean en Logo de la misma forma que las variables y consisten en datos que, luego de ser asignados, no cambian en ninguna instrucción del Algoritmo. Pueden contener constantes matemáticas (pi) o generadas para guardar valores fijos (3.8, "Jorge", etc). En el Algoritmo de la Ilustración 2-4, "div" es un ejemplo de Constante.
EJEMPLO
Las variables y constantes además de tener un Nombre (identificador) para poder referirnos a ellas en los procedimientos, guardan un Valor en su interior.


Nombre (identificador)
Valor

apellido
López

saldo
20000

tamaño
8.5

esTriángulo
SI

EJEMPLO
           El doble de la edad de Carlos Andrés es 32 años: edadCarlos es la constante donde se guarda la edad de Carlos Andrés;
R/. 2 x edadCarlos = 32

SITUACIÓN
1. La mitad de un valor (valor1) es 60
2. Cuatro veces un número (número1) equivale a 20
3. Un número (número2) disminuido en 5 es 18
4. El doble (elDoble) del precio de una manzana
5. La midad (laMitad) del precio de una gaseosa
6. el triple (elTriple) de mi edad

Los valores que pueden tomar valor1, número1 y número2 (tres primeras situaciones) son constantes:
120, 5 y 23 respectivamente; no pueden tomar otros valores. Además, estas constantes son las incógnitas de las situaciones.
Los valores que pueden tomar elDoble, laMitad y elTriple son variables ya que dependen de un precio o de la edad del estudiante que resuelve el ejercicio. Los valores de estas variables hay que conocerlos para introducirlos en el problema como datos iniciales, pero no son la incógnita. Para ampliar esta actividad, el docente puede plantear nuevas situaciones o pedir a los estudiantes que planteen situaciones similares.

Conclusiones


Una variable permite el almacenamiento de datos en la memoria. Es una abstracción que permite referirnos a una zona de memoria mediante un nombre (su identificador). Todas las variables tienen asociadas un tipo que determina los valores que pueden almacenarse y las operaciones que pueden efectuarse con los datos de ese tipo. Además, el término variable indica que el contenido de esa zona de memoria puede modificarse durante la ejecución del programa.
Una constante se define de manera parecida a una variable: modeliza una zona de memoria que puede almacenar un valor de un tipo determinado. La diferencia reside en que esa zona de memoria (su contenido) no puede modificarse en la ejecución del programa. El valor de la constante se asigna en la declaración.


Elementos de Léxico Y Sintaxis

Introducción


Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.
Dentro de los elementos del lenguaje de programación hablaremos de léxico y sintaxis.


Elementos de Léxico Y Sintaxis


Léxico

Un elemento léxico se refiere a un personaje o grupos de caracteres que legalmente pueden aparecer en un archivo de origen. This section contains discussions of the basic lexical elements and conventions of the C and C++ programming languages: Esta sección contiene las discusiones de los elementos léxicos básicos y convenciones de los lenguajes C y C + + lenguajes de programación
La formación de palabras incluye los mecanismos internos de que la lengua dispone para la renovación del léxico: la derivación; la composición; la formación de siglas; la formación de acrónimos; los acortamientos y las palabras inventadas.
El léxico es un conjunto de símbolos que se pueden usar en un lenguaje. Estos símbolos o elementos básicos del Lenguaje, podrán ser de los siguientes:
Constantes: datos que no cambiarán su valor a lo largo del programa.
Identificadores: nombres simbólicos que se darán a ciertos elementos de programación (p.e. nombres de variables, tipos, módulos, etc.).
Operadores: símbolos que representarán operaciones entre variables y constantes.
Instrucciones: símbolos especiales que representarán estructuras de procesamiento, y de definición de elementos de programación.
Comentarios: texto que se usará para documentar los programas
La mayoría de las palabras españolas vienen del latín. También, con los años, se ha ido enriqueciendo con palabras del griego (helenismos), de los pueblos germánicos (germanismos), del árabe (arabismos), del francés (galicismos), del italiano (italianismos), del inglés (anglicismos)1. Desde mediados del siglo XX, ha habido una gran incorporación de anglicismos, provenientes especialmente de Estados Unidos.
El léxico actual del español es el resultado de un largo proceso de siglos. De ahí que esté formado por palabras provenientes de los distintos pueblos que han formado parte de nuestra historia.
Recordemos que el lexema es la parte de la palabra que contiene la mayor carga de significado léxico. Ej. en una palabra como niñera, el lexema sería niñ- que lleva el verdadero significado de la palabra. Además, gracias a este lexema podemos construir otras palabras como niño, niña, niñería..
Los prefijos son aquellos elementos léxicos que añadimos delante de un lexema Ej. El lexema hiper- en palabras como hipermercado, hipertensión etc…
Los
sufijos son aquellos elementos léxicos que añadimos detrás de un lexema. Ej. Si retomamos el ejemplo anterior, niñera, el sufijo sería -era y con él podríamos formar palabras como panadera, jardinera etc…
Por tanto, a todas las palabras que han sido formadas por un lexema más un prefijo o sufijo, podemos denominarlas “palabras derivadas”. La mayoría de las palabras son derivadas.
La composición: formación de una palabra sumando dos palabras simples. En las palabras compuestas siempre habrá, como mínimo, dos lexemas.
Debemos tener cuidado con los compuestos grecolatinos, (ej. antropología: antropo- logía), cuyos componentes podrían parecer prefijos o sufijos por ser palabras ya desaparecidas, pero debemos saber que se trata de palabras grecolatinas y, por tanto, forman palabras compuestas.

SINTAXIS


Consta de unas definiciones, denominadas reglas sintácticas o producciones que especifican la secuencia de símbolos que forman una frase del lenguaje. Estas reglas dicen si una frase está bien escrita o no. Las reglas sintácticas pueden contener dos tipos de elementos Existen diversas formas de especificar las reglas, pero únicamente vamos a ver dos de ellas:
Notación BNF (Backus-Naur Form). Es de las primeras notaciones que se empezó a utilizar para especificar lenguajes de programación.
Notación BNF: <elemento no terminal> Los elementos terminales, o sea, que pertenecen al vocabulario, se escriben tal cual. Los elementos no terminales se escriben entre los símbolos <>.
Diagramas sintácticos. Es una representación gráfica de la sintaxis. Tiene la ventaja de ser más intuitivo. Los elementos terminales se inscriben en una elipse. Los elementos no terminales se inscriben en un rectángulo.



Conclusiones


El léxico emplea algunos símbolos o elementos que se usan en el lenguaje de programación, ahora, en el lenguaje C, que es el lenguaje que utilizamos en este curso.  Estos son: constantes, operadores, comentarios e instrucciones.
La sintaxis son reglas que nos dicen si una frase está bien formada o es errónea.

Práctica 2 - Unidad 2



Práctica 1 - Unidad 2






martes, 12 de febrero de 2013

Puntos Más Importantes De La Unidad 1


Uno de los puntos más importantes, en este caso para mí… fue el lenguaje C, ya que con ello podemos dar órdenes a una máquina. Un lenguaje de programación es un modo muy práctico para que los seres humanos puedan darle instrucciones a un equipo, en otras palabras, el lenguaje de programación puede usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de datos tal y como llegan al procesador que consiste en una serie de 0 y 1 que se llaman datos binarios.
Existen 3 tipos de lenguaje; nivel bajo, nivel medio y nivel alto… el nivel bajo nos dice que son lenguajes total mente dependientes de la máquina, eso quiere decir que no se puede utilizar en otra máquina. El nivel medio puede acceder a los registros del sistema. Todas ellas características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel. El lenguaje de alto nivel son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina y lo puedes migrar de una máquina a otra máquina sin ningún tipo de problema.
Un diagrama de flujo es la representación gráfica del flujo o secuencia de rutinas simples. Tiene la ventaja de indicar la secuencia del proceso en cuestión, las unidades involucradas y los responsables de su ejecución, es decir, viene a ser la representación simbólica o pictórica de un procedimiento administrativo.
Luego, un diagrama de flujo es una representación gráfica que desglosa un proceso en cualquier tipo de actividad a desarrollarse tanto en empresas industriales o de servicios y en sus departamentos, secciones u áreas de su estructura organizativa.
Son de gran importancia ya que ayudan a designar cualquier representación gráfica de un procedimiento o parte de este. En la actualidad los diagramas de flujo son considerados en la mayoría de las empresas como uno de los principales instrumentos en la realización de cualquier método o sistema.

Las palabras clave son palabras reservadas del lenguaje c#. Dado su carácter reservado, no pueden ser usados como identificadores. class, public o void son algunos ejemplos de palabras clava- son nombres de elementos permanentes del lenguaje.

Las palabras clave son palabras reservadas por el sistema y tienen significados especiales predefinidos.
El uso de las palabras clave en cualquier contexto distinto de aquel para el que han sido definidas en el lenguaje c# equivale a hacer el código ilegible. Esta es la razón principal de que las palabras clave sean reservadas. Están pensadas para ser usadas sólo por constructores que son parte del lenguaje.

Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno.
John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de "programa almacenado"(localidad de memoria). En este modelo, se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí.
¿Cómo es que describimos un programa como números? Se tenía el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios. La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora, asociarle un número, que será su código de operación (opcode) . Por ejemplo, una calculadora programable simple podría asignar los opcodes :
1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE. 

Pseudocódigos


En ciencias de la computación, y análisis numérico el pseudocódigo (o falso lenguaje) es una descripción informal de alto nivel de un algoritmo informático de programación, compacto e informal, que utiliza las convenciones estructurales de un lenguaje de programación verdadero[], pero que está diseñado para la lectura humana en lugar de la lectura mediante máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender para las personas que el código de lenguaje de programación convencional, ya que es una descripción eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y publicaciones científicas que se documentan varios algoritmos, y también en la planificación del desarrollo de programas informáticos, para esbozar la estructura del programa antes de realizar la efectiva codificación. No existe una sintaxis estándar para el pseudocódigo, aunque los cincos IDE's que manejan pseudocódigo tengan su sintaxis propia. Aunque sea parecido, el pseudocódigo no debe confundirse con los programas esqueleto que incluyen código ficticio, que pueden ser compilados sin errores. Los diagramas de flujo y UML pueden ser considerados como una alternativa gráfica al pseudocódigo, aunque sean más amplios en papel.







Ejemplo: Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo..
Programa; área
Entorno: BASE, ALTURA, AREA son número enteros 
Algoritmo: escribir “Introduzca la base y la altura” leer BASE, ALTURA calcular AREA = BASE * ALTURA escribir “El área del rectángulo es “AREA Finprograma



Ejemplo: Realizar el pseudocódigo que permita al usuario introducir por teclado dos notas, calculando la suma y el producto de las notas.
Programa: SumaProducto
Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son números enteros
Algoritmo: escribir “Introduzca las notas” leer NOTA1,NOTA2 calcular SUMA = NOTA1 + NOTA2 calcular PRODUCTO = NOTA1 * NOTA2escribir “La suma de las dos notas es:” SUMA escribir “El producto de las dos notas es :”PRODUCTO Finprograma