Nothing Special   »   [go: up one dir, main page]

Introducción A La Codificación 1

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

INTRODUCCIÓN A LA CODIFICACIÓN

MOISÉS GARCÍA TORRERO

Moisés García Torrero INFORMÁTICA INDUSTRIAL


Contenido
LENGUAJES DE ALTO NIVEL...............................................................................................3
COMPILADORES PARA C++.................................................................................................3
ESTRUCTURA BÁSICA DE UN PROGRAMA......................................................................4
LIBRERIAS.................................................................................................................................5
¿Qué son las librerías?.........................................................................................................5
Librerías más usadas en C++..............................................................................................5
DATOS Y VARIABLES.............................................................................................................8
Declaraciones y definiciones...............................................................................................8
Identificadores........................................................................................................................8
EXPRESIONES Y SENTENCIAS...........................................................................................9
Sentencias de declaración, inicialización, asignación…:...............................................10
Sentencias de llamada a una función:..............................................................................10
Sentencias compuestas o bloques:..................................................................................10
Sentencias de control de la lógica.....................................................................................10

Moisés García Torrero INFORMÁTICA INDUSTRIAL


LENGUAJES DE ALTO NIVEL.

El PSEUDOCÓDIGO NO es un lenguaje de programación, es lenguaje humano


simplificado (guion) que expresa la secuencia del programa de forma: clara, no
ambigua y de comprensible.
Los LENGUAJES DE PROGRAMACIÓN sirven para crear el código del
programa fuente (*.c, *.cpp, *.java, etc.) de medio o alto nivel (se escribe o lee
con un editor de texto), pero las máquinas lo NO lo entienden. Para que el
“código fuente” sea interpretado, es necesario traducirlo a “código máquina
o código objeto” (código binario).
Para dicha traducción del código fuente del programa de alto nivel (C / C ++,
PASCAL...) al código objeto, hay dos vías (prog. Intérpretes y prog.
Compiladores):
o INTERPRETE1.- Se traduce al código máquina, y se ejecuta, instrucción
a instrucción; sin generar nunca el programa completo en lenguaje
máquina (PHP, Phyton…)
o COMPILADOR.- Se traduce el archivo fuente y se genera un archivo
ejecutable (*.exe) en código de máquina. Generalmente: primero
genera lenguaje ensamblador (el usado por los procesadores) y luego
traduce ese lenguaje ensamblador al código máquina.

COMPILADORES PARA C++


Hay varios:
 DEV-C++, es el que yo usaré.
 MinGW2 (ojo la versión 32/64). Es un compilador de C++ ya instalado
por defecto en el SO de Linux, pero se puede instalar en Windows. Se
puede ejecutar desde la propia ventana del “Terminal” o “Comando”
(cmd, Símbolo del sistema, Comand Prompt…).

1
Traducimos la 1ª instrucción del código fuente; y ejecutamos DICHA 1ª instrucción;
luego pasamos a la 2ª (primero se traduce y luego se ejecuta), y así con todas las
instrucc.
2
MinGW (ucm.es)si

Moisés García Torrero INFORMÁTICA INDUSTRIAL


ESTRUCTURA BÁSICA DE UN PROGRAMA
La estructura básica de cualquier programe en C++ (versus Arduino) es:

Moisés García Torrero INFORMÁTICA INDUSTRIAL


system("pause"); /* Esto hace que cada vez que ejecuta una sentencia, el
sistema se para y espera que demos a una tecla para seguir*/ (SE USA EN
DEV-C++ y puede precisar el incluir la librería <windows.h>)

Moisés García Torrero INFORMÁTICA INDUSTRIAL


LIBRERIAS.

¿Qué son las librerías3?

Una librería (existen cientos) es un archivo que el compilador puede leer y en


el que encuentra las instrucciones de uso de muchos y distintos métodos y
funciones. En ellas se recoge cómo traducir al código máquina determinadas
sentencias.

La mayoría de IDE (Entornos de Desarrollo Integrados) ya las tienen incluidas


(y yo puedo crearme las mías para mis programas), pero no las añaden a todos
los códigos fuente que se crean (sino estos serían demasiado grandes).

Al incluir (“declarar”) una librería en nuestro programa podemos usar las


instrucciones que se definen en ella.

Declaración: Para usar una librería en nuestro programa, lo primero es incluirla


o declararla en nuestro código fuente (SÓLO declararemos en el código fuente
las librerías que necesitemos). Usamos la expresión #include, después de esto
y entre signos de menor qué (<) y mayor qué (>) ponemos el nombre de la
librería.

De manera general sería: #include <nombre_libreria> (Ejemplo: #include


<stdio.h> incluye algunos “standard” std de “entradas/salidas” io). Si
queremos incluir varias librerías deberemos declararlas en líneas separadas y
todas con su respectivo #include.

Librerías más usadas en C++

iostream.- La librería que más usaremos (muy completa, tiene muchas


funciones, muy utilizadas). Al incluirla en nuestro código fuente generalmente
evitamos tener que incluir más librerías.
(Al igual que esta, no todas las librerías de c++ terminan con “.h”)
Está especializada en la lectura y escritura de archivos. Es exclusiva de C++4.
#include <iostream> // Algunas funciones son las siguientes5
int a, b; //Defino las variables enteras (int) a y b
std::cout << “a”; // Muestra el valor de a en la consola
std::cin >> a; // Ingresa un valor para a desde la consola
std::cin >> b; // Ingresa un valor para b desde la consola
min(a, b); // calcula el mínimo entre a y b
max(a, b); // calcula el máximo entre a y b

3
Librerías para C++ | Include Poetry (include-poetry.com)
4
Notar que cin es “c-in” y cout es “c-out”
 cin >>: los caracteres fluyen desde el teclado
 cout <<: los caracteres fluyen hacia la consola
5
Si después de declarar la librería, en la línea siguiente, ponemos “using namespace std;” nos
ahorramos poner lo de std:: cada vez que usemos algún comando de iostream

Moisés García Torrero INFORMÁTICA INDUSTRIAL


En C++ los recursos básicos de ENTRADAS Y SALIDAS se proporcionan a
través de la biblioteca de entrada/salida iostream .
Esta biblioteca forma parte de la biblioteca estándar de C++; y todas las
funcionalidades de la biblioteca estándar (y por tanto, las de iostream) se
encuentran englobadas dentro de un “espacio de nombre”(namespace)
denominado std .
Para poder usar cualquiera de los identificadores perteneciente a un espacio de
nombres debemos utilizar el espacio de nombres seguido del operador de
resolución de ámbito :: .
#include <iostream>
double z = 1.; // Se declara z como global.
void mi_funcion(); // Estudiaremos las funciones mas adelante
int main()
{
std::cout << z << std::endl;
z = z + 1.;
std::cout << z << std::endl;
mi_funcion(); // Funcion modifica el valor de z
std::cout << z << std::endl;
}
void mi_funcion() //Estudiaremos las funciones más adelante
{
z = z*z;
}
Usar la resolución de ámbito con el operador :: es la fórmula recomendada y
profesional. Es cierto que este operador recarga el código, haciéndolo prolijo
visualmente y tedioso al escribirlo.
Como alternativa y, en particular, para un curso introductorio, puede optarse
por utilizar la directiva using de la siguiente forma:
#include <iostream>
using namespace std;
int main()
{
cout << "Hola " << "mundo.";
}

En c también hay otras librerías de lectura y escritura (cstdio o stdio.h siendo


esta última la adaptada a c++) y los comandos que usa para ello son
diferentes:
#include <stdio.h> // Algunas funciones son
printf("a"); // Muestra el valor de a en la consola
scanf("%d", &a); // Ingresa desde consola un valor para a (y lo
almacenará (&) como número entero, porque lleva el modificador “%d”
delante).
AÚN SIENDO DEL MISMO LENGUAJE (en este caso c) SEGÚN SE USE UNA
LIBRERÍA U OTRA, DIFIERE LA FORMA DE “indicar al programa como
tomar/ver” LOS DATOS.

Moisés García Torrero INFORMÁTICA INDUSTRIAL


Las librerías no son iguales en todos los lenguajes (en general NO son
intercambiables). Las librerías que se usan en un programa escrito en C+
+ (archivo con extensión .cpp) no siempre pueden usarse en un programa
escrito en C (archivo con extensión .c). Cuando una librería de C ha sido
adaptada para su uso en C++ su archivo recibe una C como prefijo y se le
elimina la extensión6:
Denominación de la librería en
C C++
assert.h cassert
ctype.h cctype
errno.h cerrno
float.h cfloat
iso646.h ciso646
limits.h climits
locale.h clocale
math.h cmath
setjmp.h csetjmp
signal.h csignal
stdarg.h cstdarg
stdbool.h cstdbool
stddef.h cstddef
stdint.h cstdint
stdio.h cstdio
stdlib.h cstdlib
string.h cstring
time.h ctime
uchar.h cuchar
wchar.h cwchar
wctype.h cwctype
Las librerías de ambos lenguajes están disponibles mutuamente, se podría
incluir <iostream> en un código C pero no serviría de nada pues C++: dispone
de palabras clave diferentes (template o namespace no existen en C),
algunas palabras clave no tienen el mismo significado (por
ejemplo auto1 o register2) e incluso C++ ha retirado elementos válidos en C
(como los dígrafos o trígrafos).

6
cplusplus.com/reference/clibrary/

Moisés García Torrero INFORMÁTICA INDUSTRIAL


DATOS Y VARIABLES
C es un lenguaje fuertemente tipificado, se deben indicar qué tipos de datos
(enteros, reales, binarios…) estamos definiendo, PARA RESERVAR LA
CANTIDAD DE MEMORIA QUE PRECISAN (ocupan) dichos datos.

Las CONSTANTES se pueden definir en C++ con #define o bien con CONS

UNA VARIABLE7, (Paradigma imperativo) permite asociar (enlazar, ligar) un


identificador al bloque de memoria que almacena un valor (ese bloque de
memoria, a través de la variable, se podrá modificar y/o inspeccionar tantas
veces como sea necesario).

Declaraciones y definiciones

DECLARACIÓN de variable => sentencia que introduce nombre


(identificador) de una variable en un programa. Así compilador conocerá del
identificador: su tipo de dato y los operadores permitidos con ese valor.
int y; // Creamos un bloque de memoria int con nombre y
int x = 10; // Creamos un bloque de memoria int con nombre x, además de
almacenarlo inicialmente con valor 10 (darle el valor 10 es
inicializar)
x = 20; /* Modificamos el bloque de memoria de nombre x
con el valor 20*/
int Z = x; // Creamos un nuevo bloque de memoria int con
// nombre Z, y copiamos el contenido de x

DEFINICIÓN => complementa la declaración estableciendo, respecto a la


entidad declarada: cuándo se crea y dónde se crea (su posición en memoria).
En el ámbito de este curso, la declaración y definición de una variable tienen
lugar al mismo tiempo. Lo habitual en la bibliografía es hablar en términos
de declarar una variable (con el empleo de “funciones”, las variables se
podrán declarar en una parte del programa y definir en otra).

INICIALIZAR => No confundir la DECLARACIÓN de una variable con la


INICIALIZACIÓN de la variable, que es asignarle un primer valor (se hace
una sola vez). Tampoco confundir con el concepto de ASIGNAR un valor a la
variable (la asignación se hace cuantas veces sea necesario).

Identificadores

El IDENTIFICADOR permite usar fácilmente los datos que están almacenados


en memoria, despreocupándonos de su posición en memoria, su dirección.

7
Este concepto variable es diferente al de las variables matemáticas, a las que se las
presupone un valor fijo y desconocido

Moisés García Torrero INFORMÁTICA INDUSTRIAL


1. Serán autoexplicativos, informando implícitamente del cometido de la
variable en el programa. Por ejemplo, queremos representar una magnitud
física correspondiente a una velocidad. ¿Qué identificador utilizar? Veamos
4 opciones:
double velocidad; // PERFECTO
double vel; // OK
double v; // POCO EXPLICATIVO
double p; // NADA EXPLICATIVO
2. Debe empezar por una letra o carácter de subrayado: natural, _varX8,
alumnos_ARI, x1…
3. Las mayúsculas son distintas de las minúsculas: interes e Interes son
variables distintas.
4. No pueden utilizarse las palabras reservadas del lenguaje9 (son las
dotadas de significado especial para el compilador), como: doube, false,
long, for, else etc.
5. No deben llevar comas, puntos, acentos, espacios en blanco, la letra ñ, etc.

EXPRESIONES Y SENTENCIAS
Las expresiones (pueden contener palabras clave del lenguaje y signos de
puntuación) permiten combinar datos y operadores para calcular otros datos,
es decir, obtener un resultado.

Una sentencia es un conjunto de expresiones que permiten ejecutar una


determinada acción (en C++, las sentencias simples terminan con el signo de
puntuación ; )

(x + 3)*2 // expresión
a > b && c < d // expresión
int x; // sentencia
y = (x + 3)*2; // sentencia

8
A pesar de estar permitido, es recomendable NO usar el subrayado al inicio, pues es utilizado
por los desarrolladores de bibliotecas y compiladores y, eventualmente, podemos generar una
colisión
9
Palabras reservadas heredadas del lenguaje C: auto const double float int short struct
unsigned break continue else for long signed switch void case default enum goto register sizeof
typedef volatile char do extern if return static unión while…. Palabras reservadas heredadas
del lenguaje C++: asm dynamic_cast namespace reinterpret_cast try bool explicit new
static_cast typeid catch false operator template typename class private this using
const_cast inline public throw virtual delete mutable protected true wchar_t

Moisés García Torrero INFORMÁTICA INDUSTRIAL


Sentencias de declaración, inicialización, asignación…:

int b;
b=0;

Sentencias de llamada a una función:

printf(“Introduce un valor para a: “);/*Esta sentencia llama la función printf que


permite introducir datos por teclado*/
scanf(“%d”,&b“);/*Esta sentencia llama la función scanf que permite mostrar por
pantalla el entero decimal (%d) almacenado, según nos indica el ampersand
(&), en la variable identificada como b */

Sentencias compuestas o bloques:

Comprendidas entre los caracteres { } :


{
sentencia_1;
sentencia_2;

sentencia_n;
}

Sentencias de control de la lógica (IF, FOR, WHILE…)

 Sentencias selectivas o condicionales


 IF (simple)
 IF (general)
 IF-ELSE anidado
 SWITCH (break) >>>>> CASE ¿go to? >>>>> break
 Sentencias de repetición (bucles)
 WHILE
 DO-WHILE
 FOR >>>>> break, ¿exit? ; continue, ¿pause?
Después de las sentencias lógicas, lo primero es poner (), para poner dentro la
“expresión a evaluar”; y luego van los {}, dentro de los cuales va la “acción
(sentencias finalizadas en ;) que queremos que haga” (pero al final de: for,
else, while… no llegan en sí ningún ;
int main ()
int hh,mm,ss;
for(){“hacer esto” ;
for(){
for(){
}}}
return 0;
}

Moisés García Torrero INFORMÁTICA INDUSTRIAL

También podría gustarte