Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lógica de programación y
algoritmos Definiciones
1
INDICE
INDICE………………………………………………………………………………..........2
INTRODUCCION……………………………………………………………………….....3
DEFINICIONES……………………………………………………………………………4
PARTES PRINCIPALES DE UN PROGRAMA………………………………………...9
DIAGRAMA DE FLUJO…………………………………………………………………13
PSEUDOCÓDIGO……………………………………………………………………….15
VARIABLES………………………………………………………………………………16
CONSTANTES…………………………………………………………………………...18
TIPOS DE DATOS……………………………………………………………………….19
EXPRESIONES LÓGICAS……………………………………………………………..23
OPERADORES…………………………………………………………………………..24
METODOLOGÍA, TÉCNICA y TECNOLOGÍA PARA SOLUCIONAR UN
PROBLEMA COMPUTABLE……………………………………………………………
2
INTRODUCCION
3
DEFINICIONES
4
Conceptos básicos sobre programación
Vamos a ver en primer lugar algún ejemplo de lenguaje de alto nivel, para después
comparar con lenguajes de bajo nivel, que son los más cercanos al ordenador.
Uno de los lenguajes de alto nivel más sencillos es el lenguaje BASIC. En este
lenguaje, escribir el texto Hola en pantalla, sería tan sencillo como usar la orden
Otros lenguajes, como Pascal, nos obligan a ser algo más estrictos, pero a cambio
hacen más fácil descubrir errores:
El equivalente en lenguaje C resulta algo más difícil de leer, por motivos que
iremos comentando un poco más adelante:
5
Los lenguajes de bajo nivel son más cercanos al ordenador que a los lenguajes
humanos. Eso hace que sean más difíciles de aprender y también que los fallos
sean más difíciles de descubrir y corregir, a cambio de que podemos optimizar al
máximo la velocidad (si sabemos cómo) e incluso llegar a un nivel de control del
ordenador que a veces no se puede alcanzar con otros lenguajes. Por ejemplo,
escribir Hola en lenguaje ensamblador de un ordenador equipado con el sistema
operativo MsDos y con un procesador de la familia Intel x86 sería algo como
Resulta bastante más difícil de seguir. Pero eso todavía no es lo que el ordenador
entiende, aunque tiene una equivalencia casi directa. Lo que el ordenador
realmente es capaz de comprender son secuencias de ceros y unos. Por ejemplo,
las órdenes “mov ds, ax” y “mov ah, 9” (en cuyo significado no vamos a entrar) se
convertirían a lo siguiente:
1000 0011 1101 1000 1011 0100 0000 1001
6
Ensambladores, compiladores e intérpretes
Está claro entonces que las órdenes que nosotros hemos escrito (lo que se conoce
como “programa fuente”) deben convertirse a lo que el ordenador comprende
(obteniendo el “programa ejecutable”).
Si elegimos un lenguaje de bajo nivel, como el ensamblador (en inglés Assembly,
abreviado como Asm), la traducción es sencilla, y de hacer esa traducción se
encargan unas herramientas llamadas ensambladores (en inglés Assembler).
Cuando el lenguaje que hemos empleado es de alto nivel, la traducción es más
complicada, y a veces implicará también recopilar varias fuentes distintas o incluir
posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros.
Las herramientas encargadas de todo esto son los compiladores.
7
Permite hacer “casi de todo”: podemos usar órdenes de alto nivel (muy
cercanas al lenguaje humano), pero también de bajo nivel (más cercanas a
lo que realmente entiende el ordenador). De hecho, podremos incluso
incorporar órdenes en lenguaje ensamblador en medio de un programa
escrito en C, aunque eso supone que ganemos en control de la máquina que
estamos manejando, a costa de perder en portabilidad (el programa ya no se
podrá llevar a otros ordenadores que no usen el mismo lenguaje
ensamblador).
Desventajas: tiene que es más difícil de aprender que otros y que puede resultar
difícil de leer (por lo que ciertos errores pueden tardar más en encontrarse).
La mayoría de los compiladores actuales permiten dar todos estos pasos desde un
único entorno, en el que escribimos nuestros programas, los compilamos, y los
depuramos en caso de que exista algún fallo.
¿Cómo crear un programa?
La siguiente figura muestra de forma esquemática lo que un usuario de C++
necesita y debe hacer para desarrollar un programa.
8
PARTES PRINCIPALES DE UN PROGRAMA
Escribir un texto en C
¿Qué es eso de “main”? Es algo que debe existir siempre, e indica el punto
en el que realmente comenzará a funcionar el programa. Después de "main"
van dos llaves { y }, que delimitan el bloque más importante: el cuerpo del
programa.
9
entre mayúsculas y minúsculas, por lo que "printf" es una palabra reconocida, pero
"Printf", "PRINTF" o "PrintF" no lo son.
La función “printf” nos obliga a que lo que escribamos en primer lugar sea un texto,
indicado entre comillas. Eso que le indicamos entre comillas es realmente un código
de formato. Dentro de ese código de formato podemos tener caracteres especiales,
con los que le indicamos dónde y cómo queremos que aparezca un número (u otras
cosas). Esto lo veremos con detalle un poco más adelante, pero de momento
podemos anticipar que “% d” sirve para decir “quiero que aquí aparezca un número
entero”.
Este ejemplo mostraría en pantalla un número entero (%d) que sea el resultado de
suma 3 y 4.
Podemos escribir entre las comillas más detalles sobre lo que estamos haciendo:
Identificadores
Estos nombres de variable (lo que se conoce como “identificadores”) pueden estar
formados por letras, números o el símbolo de subrayado (_) y deben comenzar por
letra o subrayado. No deben tener espacios entre medias, y hay que recordar que
las vocales acentuadas y la eñe son problemáticas, porque no son letras "estándar"
en todos los idiomas. Algunos compiladores permiten otros símbolos, como el $,
pero es aconsejable no usarlos, de modo que el programa sea más portable
(funcione con facilidad en distintos sistemas).
Por eso, no son nombres de variable válidos:
10
Hay que recordar que en C las mayúsculas y minúsculas se consideran diferentes,
de modo que si intentamos hacer
PrimerNumero = 0;
Primernumero = 0;
O cualquier variación similar, el compilador protestará y nos dirá que no conoce esa
variable, porque la habíamos declarado como
int primerNumero;
El número de letras que puede tener un "identificador" (el nombre de una variable,
por ejemplo) depende del compilador que usemos. Es frecuente que permitan
cualquier longitud, pero que realmente sólo se fijen en unas cuantas letras (por
ejemplo, en las primeras 8 o en las primeras 32).
Eso quiere decir que puede que algún compilador considerase como iguales las
variables NumeroParaAnalizar1 y NumeroParaAnalizar2, porque tienen las
primeras 18 letras iguales. El C estándar (ANSI C) permite cualquier longitud, pero
sólo considera las primeras 31.
Comentarios
Podemos escribir comentarios, que el compilador ignora, pero que pueden servir
para aclararnos cosas a nosotros. Se escriben entre /* y */:
11
Datos por el usuario: scanf
Si queremos que sea el usuario de nuestro programa quien teclee los valores,
necesitamos una nueva orden, llamada “scanf”. Su manejo recuerda al de “printf”,
con una pequeña diferencia:
Con ese “%d” indicamos que esperamos leer un número entero (igual que para
“printf”) y con &primerNumero decimos que queremos que ese valor leído se guarde
en la variable llamada “primerNumero”.
La diferencia está en ese símbolo & que nos obliga scanf a poner antes del nombre
de la variable.
12
DIAGRAMA DE FLUJO
13
Ejemplo:
14
PSEUDOCÓDIGO
A pesar de que los lenguajes de alto nivel se acercan al lenguaje natural, que
nosotros empleamos, es habitual no usar ningún lenguaje de programación
concreto cuando queremos plantear los pasos necesarios para resolver un
problema, sino emplear un lenguaje de programación ficticio, no tan estricto,
muchas veces escrito incluso en español. Este lenguaje recibe el nombre de
pseudocódigo.
15
VARIABLES Y CONSTANTES
16
Mostrar el valor de una variable en pantalla
Una vez que sabemos cómo mostrar un número en pantalla, es sencillo mostrar el
valor de una variable. Para un número hacíamos cosas como printf("El resultado es
%d", 3+4);pero si se trata de una variable es idéntico: printf("El resultado es %d",
suma);
ejemplo:
Esto es:
#include <stdio.h> dice que queremos usar funciones de entrada/salida
estándar
main () indica donde comienza en sí el cuerpo del programa.
{ señala el principio del cuerpo (de “main”)
int primerNumero; reserva espacio para guardar un número entero, al que
llamaremos primerNumero.
int segundoNumero; reserva espacio para guardar otro número entero, al que
llamaremos segundoNumero.
int suma; reserva espacio para guardar un tercer número entero, al que
llamaremos suma.
primerNumero = 234; da el valor del primer número que queremos sumar.
segundoNumero = 567; da el valor del segundo número que queremos
sumar.
suma = primerNumero + segundoNumero; halla la suma de esos dos
números y la guarda en otra variable, en vez de mostrarla directamente en
pantalla.
printf ("Su suma es %d", suma); muestra en pantalla el resultado de esa
suma.
}señala el final del cuerpo (de “main”)
17
Las constantes son valores fijos que no pueden ser modificados durante la
ejecución del programa. Las constantes se utilizan para representar valores que no
cambian, como números, caracteres, cadenas de caracteres, entre otros.
Constantes numéricas: Son valores numéricos fijos que se utilizan para realizar
operaciones matemáticas en el programa. Pueden ser enteros o de punto flotante.
Ejemplos de constantes numéricas son 5, 3.14, -10, etc.
18
TIPOS DE DATOS BÁSICOS
En lenguaje C, existen varios tipos de datos que se pueden utilizar para declarar
variables, incluyendo:
Tipos de datos enteros (int): Estos son números enteros, positivos o negativos, sin
decimales. Por ejemplo: int edad = 25;
Tipos de datos de coma flotante (float): Estos son números con decimales. Por
ejemplo: float altura = 1.80;
Tipos de datos doble precisión (double): Estos son números con mayor precisión
que los tipos de datos de coma flotante. Por ejemplo: double pi = 3.14159265359;
Tipos de datos de caracteres (char): Estos son caracteres alfanuméricos
individuales, como letras o números. Por ejemplo: char inicial = 'J';
Tipos de datos de cadenas de caracteres (string): Estos son conjuntos de caracteres
alfanuméricos que pueden contener una o varias palabras. Por ejemplo: char
nombre[] = "Juan Perez";
Tipos de datos de booleanos (bool): Estos son valores verdadero o falso (1 o 0). Por
ejemplo: bool esMayor = true;
Tipos de datos de punteros (pointer): Estos son tipos de datos especiales que
contienen una dirección de memoria que apunta a otra variable. Por ejemplo: int
*puntero = &edad;
Estos son algunos de los tipos de datos más comunes en el lenguaje C. Es
importante tener en cuenta que el tamaño de estos tipos de datos puede variar
según la arquitectura del sistema utilizado.
19
que el número puede ser negativo o positivo. Si queremos dejarlo más claro,
podemos añadir la palabra “signed” (con signo) antes de “int”. Este es uno de los
“modificadores” que podemos emplear. Otro modificador es “unsigned” (sin signo),
que nos sirve para indicar al compilador que no vamos a querer guardar números
negativos, sólo positivos.
20
“reales” (con decimales). En el mundo de la informática hay dos formas de trabajar
con números reales:
En algunos sistemas existe un tipo “long double”, con mayor precisión todavía (40
bits o incluso 128 bits).
Para definirlos, se hace igual que en el caso de los números enteros:
float x;
o bien, si queremos dar un valor inicial en el momento de definirlos (recordando que
para las cifras decimales no debemos usar una coma, sino un punto):
float x = 12.56;
21
Tipo de datos carácter
También tenemos un tipo de datos que nos permite almacenar una única letra (ya
veremos que manipular una cadena de texto completa es relativamente
complicado). Es el tipo “char”:
(Hay que destacar que se usa una comilla simple en vez de comillas dobles).
Mostrarlos en pantalla también es fácil:
22
EXPRESIONES LOGICAS
En el lenguaje C, las expresiones lógicas son aquellas que se utilizan para evaluar
la veracidad o falsedad de una proposición. Estas expresiones se construyen
utilizando operadores lógicos, que permiten combinar o negar proposiciones. Los
operadores lógicos disponibles en C son los siguientes:
23
OPERADORES
24
Operadores de asignación: Estos operadores se utilizan para asignar valores a
variables. Los operadores de asignación disponibles en C son los siguientes:
Asignación (=): Se utiliza para asignar un valor a una variable. Por ejemplo, a = 10.
Asignación con suma (+=): Se utiliza para sumar un valor a una variable y asignar
el resultado a la misma variable. Por ejemplo, a += 5 es equivalente a a = a + 5.
Asignación con resta (-=): Se utiliza para restar un valor a una variable y asignar
el resultado a la misma variable. Por ejemplo, a -= 5 es equivalente a a = a - 5.
Asignación con multiplicación (*=): Se utiliza para multiplicar una variable por un
valor y asignar el resultado a la misma variable. Por ejemplo, a *= 5 es equivalente
a a = a * 5.
Asignación con división (/=): Se utiliza para dividir una variable por un valor y
asignar el resultado a la misma variable. Por ejemplo, a /= 5 es equivalente a a = a
/ 5.
Asignación con módulo (% =): Se utiliza para obtener el resto de una división
entera entre una variable y un valor, y asignar el resultado a la misma variable. Por
ejemplo, a %= 5 es equivalente a a = a % 5.
25
Menor o igual que (<=): Devuelve verdadero si el primer valor es menor o igual que
el segundo.
26
METODOLOGIA, TECNICA Y TECNOLOGIA PARA SOLUCIONAR UN
PROBLEMA COMPUTABLE
27
CONLUSION
Bibliografias
Libros:
Enciclopedia del lenguaje C++
https://ns2.elhacker.net/descargas/manuales/Lenguajes%20de%20Programacion/
C/kupdf.net_enciclopedia-del-lenguaje-c-ceballos-sierra-fco-javierau.pdf
28