Está en la página 1de 28

Universidad Nacional Experimental de los Llanos Occidentales “Ezequiel Zamora”

Subproyecto Algoritmos y
Programación I
Prof. Rafael V. Montenegro B. www.networkingapure.com.ve Telf. (0412) 450-8862
CONTACTO

networking.apure@gmai
l.com

rafaelapure

rafaelapure

profrafaelmontenegro.wordpress.
com

Pronto nuevo dominio

ALGORITMOS Y PROGRAMACIÓN I 0412-4508862


PLAN DE EVALUACIÓN

MODALIDAD DE
MODULO OBJETIVOS ESPECIFICOS PORCENTAJE SEMANAS
EVALUACIÓN

1.Conocer el concepto de
lenguaje artificial y de lenguaje
I
de programación.
INTRODUCCION A
LOS LENGUAJES
2. Conocer, desarrollar las Prueba Individual 25% 4
ARTIFICIALES características básicas y los
elementos de programación de
un lenguaje de alto nivel (C++).

1.Conocer las instrucciones que


permiten programar las
II estructuras de control para el
PROGRAMACION Prueba Individual 15%
procesamiento de información. 4
DE ESTRUCTURAS
2. Declarar y programar Practica Laboratorio 10%
DE CONTROL
instrucciones y estructuras de
control en C++.

1. Definir, representar, desarrollar


III y programar procedimientos y Practica Laboratorio 10%
PROCEDIMIENTOS Y funciones que permitan el 4
FUNCIONES procedimiento de información en Prueba Individual 15%
C++.

Desarrollar los elementos de


IV programación básicos para la
MANEJO DE implementación de Practica Laboratorio 25% 3
ARCHIVOS los sistemas de archivos.

Introducción a los Lenguajes Artificiales Algoritmos y Programación I 3


Contenido Conocer el concepto de
lenguaje artificial y de
lenguaje de
Modulo I programación.

Conocer, desarrollar las


características básicas y
los elementos de
INTRODUCCION A LOS programación de un
LENGUAJES ARTIFICIALES lenguaje de alto nivel
(C++).

Contenido
Definición de lenguaje, vocabulario, reglas sintácticas y semánticas de los
lenguajes. Clasificación de los lenguajes, evolución de los lenguajes de
programación y breve reseña de cada uno. Presentación, estructuras y
características del lenguaje de programación C++. Declaración de constantes,
variables y tipos. Operadores, símbolos y precedencia de los operadores
dentro de los lenguajes. Palabras reservadas e identificadores estándares.
Declaración de estructuras de datos lógicas primitivas y simples, declaración
de cadenas de caracteres. Estructuras secuenciales.
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

¿Porqué estudiar lenguajes de

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES


programación?
La pregunta es ¿cuál es la ventaja de estudiar una variedad
de lenguajes diferentes que es poco probable que uno
llegue a utilizar?:

EZEQUIEL ZAMORA
• Mejorar la habilidad para desarrollar algoritmos eficaces.
• Mejorar el uso del lenguaje de programación disponible.
• Acrecentar el propio vocabulario con construcciones útiles sobre
programación.
• Hacer posible una mejor elección del lenguaje de programación.
• Facilitar el aprendizaje de un nuevo lenguaje.
• Facilitar el diseño de un nuevo lenguaje.

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 5


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.1 Definición de lenguaje de programación.

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES


Un lenguaje de programación es un conjunto de símbolos y reglas
sintácticas y semánticas que definen su estructura y el significado de sus
elementos y expresiones. Es utilizado para controlar el comportamiento
físico y lógico de una máquina. PRIETO, A., LLORIS, A. y TORRES,

EZEQUIEL ZAMORA
Introducción a la Informática (p51).

¿Qué hacer después?

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 6


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.2 Vocabulario

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES


Reglas Sintácticas: 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:
• Identificadores: nombres simbólicos que se darán a ciertos elementos de
programación (nombres de variables, tipos, módulos, etc.).
• Constantes: datos que no cambiarán su valor a lo largo del programa.
• Operadores: símbolos que representarán operaciones entre variables y constantes.

EZEQUIEL ZAMORA
• 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

Reglas semánticas
Las reglas semánticas o semántica son el conjunto de normas que definen, a partir del
conjunto de cada una de las instrucciones de un código fuente, el orden de las
operaciones y llamadas a funciones que realizan dentro de cada una de las
instrucciones, estableciendo el orden de ejecución (prioridad) de cada sentencia a
evaluar.

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 7


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.3 Clasificación de los Lenguajes

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES


Lenguajes de
Programació
n

EZEQUIEL ZAMORA
Bajo Nivel Alto Nivel

Maquina Ensamblador Procedurales Declarativos

Orientados a
Imperativos Funcionales Lógicos
Objetos

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 8


INTRODUCCION A LOS LENGUAJES
ARTIFICIALES

1.4 Evolución de los


Lenguajes de Programación

Evolución de los
Lenguajes de Programación
Orientados a Objetos e
Imperativos

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 9


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.4.1 Breve Reseña de los Lenguajes de Programación


En 1957(10 de febrero) aparece el lenguaje Fortran (siglas de FORmula TRANslator), el primer lenguaje de alto nivel
ampliamente difundido y utilizado a nivel mundial. El primer compilador de Fortran fue desarrollado por un equipo de
IBM liderado por John W. Backus. Inicialmente Fortran fue muy utilizado en el mundo científico y en alplicaciones
militares, y se escribieron multitud de librerías matemáticas para cálculo numérico, algunas de las cuales siguen
utilizándose hoy en día.

Ya en 1960(desde 15 de julio1958) aparece LISP, un lenguaje idóneo para crear


programas de inteligencia artificial porque utilizaba conceptos de programación funcional
y recursividad. Aunque no es muy utilizado para el desarrollo de aplicaciones
empresariales.
1960 aparece COBOL, un lenguaje preparado para procesar grandes cantidades de
información. Esto hizo que fuese ampliamente adoptado en bancos y grandes
organizaciones que siguen utilizándolo hoy en día.

En 1972, Kenneth L. Thompson y Dennis M. Ritchie crean el lenguaje C en los laboratorios Bell. Se llama lenguaje
C porque proviene de uno anterior llamado lenguaje B, que a su vez provenía del lenguaje BCPL.Al igual que B,
es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la
eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas,
aunque también se utiliza para crear aplicaciones

Es un sistema de desarrollo de software que incluye un compilador y un entorno de desarrollo integrado (IDE)
para el lenguaje de programación Pascal, desarrollado por Borland y liderado por Philippe Kahn.Fue lanzado en
1983 para MS-DOS, CP/M, CP/M-86 y, posteriormente, para Microsoft Windows, fue durante mucho tiempo la
versión mas extendida del lenguaje Pascal. También hubo una versión de corta vida para Apple Macintosh.

Modulo I Introducción a los Lenguajes Artificiales [Piensa en C, Aguilar y Martínez, 2004,(p45)] 10


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.5 Presentación Lenguaje de Programación C++

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES


El comité para el estándar ANSI C fue formado en 1983 con el objetivo de crear un
lenguaje uniforme a partir del C original, desarrollado por Kernighan y Ritchie en 1972,
en la ATT. Hasta entonces el estándar lo marcaba el libro escrito en 1978 por estos dos
autores.
En la actualidad, el C++ es un lenguaje versátil, potente y general. Su
éxito entre los programadores profesionales le ha llevado a ocupar el
primer puesto como herramienta de desarrollo de aplicaciones. El C++

EZEQUIEL ZAMORA
mantiene las ventajas del C en cuanto a riqueza de operadores y
expresiones, flexibilidad, concisión y eficiencia. Además, ha eliminado
algunas de las dificultades y limitaciones del C original. La evolución de
C++ ha continuado con la aparición de Java, un lenguaje creado
simplificando algunas cosas de C++ y añadiendo otras, que se utiliza para
realizar aplicaciones en Internet.

El C++ es a la vez un lenguaje procedural


(orientado a algoritmos) y orientado a
objetos.
Modulo I Introducción a los Lenguajes Artificiales Cómo Programar en C/C++ y Java. Deitel y Deitel, 2004 (pag101) 11
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES


1.5.1 Estructuras y características del lenguaje de programación C++
El mínimo programa de C++ es:
main() { }• Lo único que hemos hecho es definir una función (main) que no tiene argumentos y no
hace nada. Las llaves { } delimitan un bloque en C++, en este caso el cuerpo de la

función main.

EZEQUIEL ZAMORA
• Todos los programas deben tener una función main() que es la que se ejecuta al
comenzar el programa.
• Un programa será una secuencia de líneas que contendrán sentencias, directivas de
compilación y comentarios.
• Las sentencias simples se separan por punto y coma y las compuestas se agrupan en
bloques mediante llaves.
• Las directivas serán instrucciones que le daremos al compilador para indicarle que
realice alguna operación antes de compilar nuestro programa, las directivas comienzan

con el símbolo # y no llevan punto y coma.


Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 12
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.5.1 Estructuras y características del lenguaje de programación C++

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES


Elementos de un
programa
Un programa está formado por:
Datos u objetos del programa:

EZEQUIEL ZAMORA
• Información que procesa el programa
perimetro, radio
Expresiones:
• Combinación de datos mediante operadores
2 * pi *radio
Instrucciones:
• Acciones a realizar sobre los objetos
Float perimetro = 2 * pi *radio;
cout<<“el valor del perímetro es ”<<perimetro;
Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 13
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.5.1 Estructuras y características del lenguaje de programación C++

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES


Comentarios en c++
/* Esto es un comentario simple.*/
/* Esto es un comentario más largo,
distribuido en varias líneas. El

EZEQUIEL ZAMORA
texto se suele alinear por la izquierda. */
/**************************************
* Esto es un comentario de varias *
* líneas, encerrado en una caja para *
* llamar la atención. *
**************************************/
// Esto es un comentario simple.

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 14


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.5.1 Estructuras y características del lenguaje de programación C++

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES


Instrucciones en C++
Sentencias (Instrucciones)
• Todas las instrucciones simples acaban en ’ ;

Bloques
Un bloque es un conjunto de instrucciones agrupadas

EZEQUIEL ZAMORA
Se indica con llaves { …}.
#include<iostream>
float radio;

int main ()
{
cout<<"Por favor ingrese un valor para el radio= ”;
cin>>radio;
cout<<“EL Radio es: ”<<radio;
return 0;
}
Cout<<“el radio de nuevo es: “<<radio;

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 15


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.5.1 Estructuras y características del lenguaje de programación C++

UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES


#include <iostream> Fichero con funciones básicas de
entrada y salida
int main(void) {
… Función main
void indica que no recibe datos
return 0; de entrada

EZEQUIEL ZAMORA
}
return 0
indica que la función devuelve 0
como dato de salida
• También válido:

#include <iostream>

int main() {
… return es opcional, pero es
} más correcto si se usa.
Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 16
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.6 Declaración de Constantes, Variables y tipos en C++


Constantes en C++, const y #define
Las datos constantes, mal llamadas por algunos "variables constantes" (realmente no son variables) tienen un valor fijo
durante toda la ejecución del programa, es decir, este valor no cambia ni puede ser cambiado a lo largo de la ejecución de
nuestro programa. Las constantes son muy útiles para especificar el tamaño de un vector y para algunas otras cosas, como
facilidad de uso y confiabilidad del código. Para declarar una constante, se hace después de declarar las librerías y antes de
las funciones, la sintaxis es la siguiente: #define nombre_constante valor. Veamos algunos detalles y luego un ejemplo
sencillo del uso de las constantes en C++
#include <iostream>
using namespace std;
#define PI 3.1416; //Definimos una constante llamada PI
int main() {
cout << "Mostrando el valor de PI: " << PI;
return 0; #include <iostream>
} using namespace std;
int main() {
const float PI = 3.1416; //Definimos una constante llamada PI
cout << "Mostrando el valor de PI: " << PI;
return 0;
}
Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 17
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.6 Declaración de Constantes, Variables y tipos en C++


¿Cómo se declara una variable en C++?
Variables La sintaxis para una variable es la siguiente:
Alcance o ámbito de las variables [modificadores] [tipo de variable] [nombre de la variable] [=] [valor];
Las variables existen sólo dentro del bloque en
el que se definen, es decir, se crean cuando se En la declaración de una variable se debe
colocar como mínimo el tipo de dato, el nombre
entra en el bloque al que pertenecen y se y el punto y coma al final de la línea, los
destruyen al salir de él. modificadores son opcionales, es decir no es
necesario ponerlos y tampoco es obligatorio
• Para asignar un valor a una variable se asignarle un valor a la variable de inmediato. Si
utiliza el operador = no se pone ningún modificador, el compilador
tomará nuestra variable como signed, es decir
• Es posible asignar valores al momento podría ser positivo o negativo.
de declarar las variables;
• Ejemplos:

Int x = 10;
float a = 3.4, b = 5.6, c = -1.7;

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 18


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.6 Declaración de Constantes, Variables y tipos en C++


Tipos de Datos
Tipo Descripción Tamaño en bytes Intervalo posible de valores
int Número entero 2 bytes –32768 a 32767

Número real en coma flotante con


float precisión simple (hasta 7 cifras 4 bytes 3.4 x 10-38 , 3.4 x 1038
decimales )

Número real con precisión doble


8 bytes 1.7 x 10-308 a 1.7 x 10308
double (hasta 16 cifras decimales)

Caracteres alfanuméricos
char 1 byte 0 a 255

(El número de bytes puede variar de un compilador a otro)


• Otros tipos de datos:
Tipo void
Punteros
Cadenas de caracteres
Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 19
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.7 Operadores, símbolos y precedencia de los operadores


Operadores aritméticos en C++
Operador Operación

+ Suma
Resta
-
Multiplicación
*
División
/
% Módulo (resto de división entera)

• División /
• requiere que el segundo operando no sea
nulo
• Puede
• módulo (%)ser división entera o real
• requiere que los operandos sean enteros y el segundo no
nulo
• El resultado
Modulo I
es la parte entera de la división
Introducción a los Lenguajes Artificiales Lenguaje de Programación I 20
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.7 Operadores, símbolos y precedencia de los operadores


Operadores relacionales en C+
+ Operador Significado

< Menor que


Menor o igual que
<=
Mayor que
>
Mayor o igual que
>=

Operador Significado
Operadores
de igualdad == Igual que
Distinto de
!=

• El resultado de una expresión relacional será verdadero o falso


• 0 falso, 1 verdadero
• Nota: no confundir el operador == con la asignación =
Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 21
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.7 Operadores, símbolos y precedencia de los operadores


Operadores lógicos en C++
Operador Significado Son los operadores conjunción (y), disyunción (o) y negación

&& and Actúan sobre operandos de tipo lógico o booleano: que


or pueden valer 'verdadero' o falso'
||
También pueden actuar sobre expresiones lógicas
not
!

Conjunción: AND Disyunción: OR Negación: NOT


!
&& V F || V F V F
V V F V V V F V
F F F F V F

En C++, los valores 'verdadero' y 'falso' se


representan como 1 y 0 respectivamente
Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 22
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.7 Operadores, símbolos y precedencia de los operadores


Orden de precedencia en C++
Unarios ! NOT (negación lógica) !a

Los operadores de la misma categoría tienen la


++ Incremento ++ a
-- Decremento -- a

misma prioridad, se evalúan de izquierda a


- Cambio de signo -b
* Contenido * direccion
& Dirección de memoria & numero
Multiplicativos * Multiplicación a*b
/ División a/b
% Módulo a%b
Aditivos + Suma a+b
- Resta a-b
Relacionales < Menor que <a
<= Menor o igual que <= a
> Mayor que >b
>= Mayor o igual que >= b
De igualdad == Igual que a == b
!= Distinto de a != b

derecha
Lógicos && AND lógico a && b
|| OR lógico a || b
De asignación = asignación a=b
Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 23
INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.8 Palabras Reservadas e Identificadores


Identificadores en C++
Los identificadores utilizados en el lenguaje C++ son una secuencia de caracteres
alfanuméricos que se usan para denominar diferentes cosas como son:
•El nombre de un objeto o una variable
•El nombre de una constante
•Un nombre de clase, estructura o unión

Palabras Reservadas
Las Palabras Reservadas, son
identificadores reservados
predefinidos que tienen un
significado especial y no se pueden
utilizar como identificadores en sus
programas.

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 24


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

1.9 Estructura Secuencial


La estructura secuencial está formada por una secuencia de instrucciones que se ejecutan en orden una a
continuación de la otra.
Cada una de las instrucciones están separadas por el carácter punto y coma (;). No obstante, en algunos casos
nos interesará agrupar en un bloque una serie de instrucciones, como veremos al explicar las estructuras de
selección y de iteración. El bloque de sentencias se define por el carácter llave de apertura ({) para marcar el
inicio del mismo, y el carácter llave de cierre (}) para marcar el final.

Ejemplo:
#include <iostream>
{
using namespace std;
instrucción 1;
int main()
instrucción 2;
{
instrucción 3;
cout << "hola" << endl;
.....
system ("pause");
instrucción N;
return 0;
}
}

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 25


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

Resumen de Programación en C++ hasta ahora

Definición de lenguaje, vocabulario, Presentación, estructuras y


reglas sintácticas y semánticas de los características del lenguaje de
lenguajes. Clasificación de los lenguajes, programación C++. Declaración de
evolución de los lenguajes de constantes, variables y tipos.
programación y breve reseña de cada Operadores, símbolos y precedencia de
uno. los operadores dentro de los lenguajes.

Palabras reservadas e identificadores


estándares. Declaración de estructuras Estructuras secuenciales.
de datos lógicas primitivas y simples,
declaración de cadenas de caracteres.

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 26


INTRODUCCION A LOS LENGUAJES ARTIFICIALES

Bibliografía Recomendada

• L. Joyanes Aguilar e I. Zahonero Martínez, Programación en C: metodología,


algoritmos y estructuras de datos (Segunda edición). Editorial McGraw-Hill, 2005.
[Aguilar y Martínez, 2005]

• Osvaldo Cairó, Fundamentos de Programación: Piensa en C. Editorial Pearson


Prentice Hall, 2006. [Cairó, 2006]

• H. M. Deitel y P. J. Deitel, Cómo Programar en C/C++ y Java. (Cuarta edición). Ed.


Pearson Educación, 2004. [Deitel y Deitel, 2004]
• L. Joyanes Aguilar e I. Zahonero Martínez, Algoritmos y estructuras de datos: una
perspectiva en C (Primera edición). Editorial McGraw-Hill, 2004. [Aguilar y
Martínez, 2004]

Modulo I Introducción a los Lenguajes Artificiales Lenguaje de Programación I 27


CONTACTO

networking.apure@gmai
l.com

rafaelapure

rafaelapure

www.networkingapure.com.
ve

aulavirtual.networkingapur
e.com.ve
LENGUAJE DE PROGRAMACIÓN I 0412-4508862

También podría gustarte