Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Informatica, Apuntes de Ingeniería Mecánica

Asignatura: Fonaments d'Informàtica, Profesor: , Carrera: Enginyeria Mecànica, Universidad: UPC

Tipo: Apuntes

Antes del 2010

Subido el 07/10/2008

fran90_bdn
fran90_bdn 🇪🇸

3.8

(24)

1 documento

1 / 77

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
ÍNDICE GENERAL 1
Índice general
1.1. El ordenador, algoritmos y programas . . . . . . . 4
1.1.1. El Ordenador: Conceptos Básicos . . . . . . 4
1.1.2. Algoritmos.................... 6
1.1.3. Lenguajes de programación . . . . . . . . . 9
1.1.4. Programas.................... 12
1.2. Especificación de programas . . . . . . . . . . . . . 16
1.2.1. Escritura y organización de un programa . . 16
1.2.2. Elementos básicos de un lenguaje de pro-
gramación.................... 23
1.2.2.1. Tokens y reglas sintácticas . . . . . 23
1.2.2.2. Palabras reservadas . . . . . . . . . 24
1.2.3. Tipos de errores en la programación . . . . 26
1.3. Datos y tipos de datos . . . . . . . . . . . . . . . . . 28
1.3.1. Representación en memoria de datos e ins-
trucciones.................... 28
1.3.2. Datos y tipos de datos . . . . . . . . . . . . . 29
1.3.2.1. Literales . . . . . . . . . . . . . . . . 31
1.3.2.2. Declaración de datos . . . . . . . . 32
1.3.2.3. Datos constantes . . . . . . . . . . . 36
1.3.2.4. Normas para la elección del iden-
tificador ................ 40
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d

Vista previa parcial del texto

¡Descarga Informatica y más Apuntes en PDF de Ingeniería Mecánica solo en Docsity!

Índice general

TEMA 1. PROGRAMACIÓN EN C++: INTRODUCCIÓN

1.1. EL ORDENADOR, ALGORITMOS Y PROGRA-

MAS

1.1.1. EL ORDENADOR: CONCEPTOS BÁSICOS

Hardware Software (Programa) Usuario Lenguaje de Progra- mación Programador

Estructura de un ordenador:

UNIDAD

UNIDAD

ENTRADA

CPU

SALIDA

MEMORIA PRINCIPAL

1111111 00111111 11010010 001001000001111 11100011 10100100 10111001 0101100 11110110 00000001 10100001 MEMORIA MASIVA

datos e instrucciones

datos

datos

instrucciones

datos e instrucciones

DE CONTROL

ARITMETICO-LOGICA

Ejemplo. Algoritmo para dibujar un cuadrado de L cm. de lado, en (X,Y):

  1. Posicionar el lápiz en el punto de coordenadas (X,Y), que será la esquina superior izquierda del cuadrado.
  2. Trazar a dcha, línea horiz. de L cm.
  3. Desde ese punto, trazar abajo línea vert. de L cm.
  4. Desde ese punto, trazar a izqda. línea horiz. de L cm.
  5. Desde ese punto, trazar arriba línea vert. de L cm.

Datos de entrada: las coordenadas (X,Y) y la longitud L. Datos de salida: ninguno.

Instrucciones para el preparado de una paella:

  1. Realizar un sofrito.
  2. Incorporar 100 gr. de carne magra de cerdo, 200 gr. de po- llo, una cucharadita de sal, una papelina de azafrán y 1/ litro de agua. Dejar hervir durante 3/4 de hora.
  3. Añadir 1/2 kg. de arroz. Dejar a fuego medio 20 minutos.

¿Es correcto? ¿Es preciso? ¿Qué es fuego medio? ¿Es repetitivo? Es casi imposible obtener el mismo resul- tado en distintas repeticiones. ¿Es finito?

Por tanto, no es un algoritmo.

Algoritmo para la resolución de una ecuación de primer grado ax + b = 0:

Datos de entrada : a, b Datos de salida : x Instrucciones en lenguaje natural: Calcular x como el resultado de la división -b/a

Podría mejorarse el algoritmo contemplando el caso de ecua- ciones degeneradas.

Algoritmo para el cálculo de la hipotenusa de un triángulo rec- tángulo.

Datos de entrada : lado1, lado Datos de salida : hipotenusa Instrucciones en lenguaje natural: Calcular hipotenusa como el resultado de la operación:

hipotenusa =

√ lado1^2 + lado2^2

  1. Lenguajes de alto nivel (C, C++, Java, Pascal, Lisp, Prolog, Módula-2, Visual Basic, ...) En esta asignatura usaremos C++ (ISO C++).

Descripción ( implementación ) del algoritmo de las medias (pa- ra 4 valores) en C++:

suma = valor1 + valor2 + valor3 + valor4; media = suma / 4;

Descripción ( implementación ) del algoritmo para el cálculo de la hipotenusa:

hipotenusa = sqrt(lado1lado1 + lado2lado2);

Reseña histórica del lenguaje C++

1967 Martin Richards: BCPL para escribir S.O.

1970 Ken Thompson: B para escribir UNIX (inicial)

1972 Dennis Ritchie: C

1978 Libro The C Programming Language, B. Kernigham, D. Rit- chie.

1983 Comité Técnico X3J11: ANSI C

1983 Bjarne Stroustrup: C++

1989 Comité técnico X3J16: ANSI C++

1990 Internacional Standarization Organization http://www.iso.org

Comité técnico JTC1: Information Technology

  • Subcomité SC-22: Programming languages, their environments and system software interfaces. ◦ Working Group 14: C http://www.open-std.org/jtc1/sc22/wg14/ ◦ Working Group 21: C++ http://www.open-std.org/jtc1/sc22/wg21/

1999 ISO/IEC 9899

Documentos no oficiales : Borrador final de C++ estándar http://www.kuzbass.ru/docs/isocpp Incompatibilidades entre ISO C y ISO C++ http://david.tribble.com/text/cdiffs.htm

Ecuacion.cpp

Programa para resolver la ecuación de primer grado: ax + b = 0 */

#include // Inclusión de los recursos de E/S // (cin y cout)

using namespace std;

int main(){ // Programa Principal double a, b, x; // Declara las variables a, b, x

cout << "Considere la ecuacion ax + b = 0\n"; cout << "Introduzca el valor de a: "; cin >> a;

cout << "Introduzca el valor de b: "; cin >> b;

x = -b/a;

cout << "\n La solución de la ecuación es: " << x; }

Ecuacion.cpp es un simple fichero de texto. Para obtener el pro- grama ejecutable (el fichero en binario que puede ejecutarse en un ordenador) a partir del código fuente, se utiliza un compila- dor :

Código fuente del programa

−→ Compilación −→ Programa ejecutable

La extensión usual del programa ejecutable en Windows es .exe

Código Fuente: Ecuacion.cpp #include

using namespace std;

int main() { double a, b, x;

cout << "Introduzca el valor de a: "; cin >> a; .......... }

−→ Compilador −→

Programa Ejecutable: Ecuacion.exe 10011000010000 10010000111101 00110100000001 11110001011110 11100001111100 11100101011000 00001101000111 00011000111100

1.2. ESPECIFICACIÓN DE PROGRAMAS

1.2.1. ESCRITURA Y ORGANIZACIÓN DE UN PROGRA-

MA

Los programas en C++ pueden dividirse en varios ficheros aunque por ahora vamos a suponer que cada programa es- tá escrito en un único fichero (por ejemplo, Pitagoras.cpp). Se pueden incluir comentarios en lenguaje natural. /* Comentario en varias líneas */ // Comentario 1 sola línea El texto de un comentario no es procesado por el compila- dor. Al principio del fichero se indica que vamos a usar una se- rie de recursos definidos en un fichero externo o biblioteca #include #include

using namespace std; A continuación aparece int main(){ que indica que comien- za el programa principal. Éste se extiende desde la llave abierta {, hasta encontrar la correspondiente llave cerra- da. Dentro del programa principal van las sentencias que com- ponen el programa. Una sentencia es una parte del código fuente que el compilador puede traducir en una instrucción en código binario.

Las sentencias van obligatoriamente separadas por punto y coma (;) El compilador va ejecutando las sentencias secuencialmen- te de arriba abajo. En el tema 2 se verá como realizar sal- tos , es decir, interrumpir la estructura secuencial. Cuando llega a la llave cerrada } correspondiente a main(), y si no han habido problemas, el programa termina de eje- cutarse y el Sistema Operativo libera los recursos asigna- dos a dicho programa.

Existen varios tipos de sentencias:

Sentencias de declaración de datos. Los datos son como variables matemáticas. Cada dato que usemos en un pro- grama debe declararse al principio (después de main), aso- ciándole un tipo de dato concreto. double lado1, lado2; // <- Separados por coma double hip; // <- Pueden usarse varias líneas Declara tres datos ( variables ) de tipo real que el programa- dor puede usar en el programa. Sentencias de cálculo, a través de la asignación = lado1 = 7; lado2 = 5; hip = sqrt(lado1lado1 + lado2lado2); asigna a la variable hip el resultado de evaluar lo que apa- rece a la derecha de la asignación.

Importante. Es conveniente dar un formato adecuado a la salida de datos en pantalla. El usuario del programa debe entender claramente el significado de todas sus salidas.

// MAL: cout << totalVentas << numeroVentas

// BIEN: cout << "\nSuma total de ventas = " << totalVentas; cout << "\nNúmero total de ventas = " << numeroVentas;

Sentencias para leer datos desde el dispositivo de entra- da establecido por defecto. Por ahora, será el teclado. Se construyen usando cin, que es un recurso externo incluido en la biblioteca iostream. Su sintaxis más elemental es la siguiente

cin >> variable;

Por ejemplo, cin >> lado1, espera a que el usuario intro- duzca un valor real (double) desde el teclado (dispositivo de entrada) y, cuando se pulsa la tecla Intro, lo almacena en la variable lado1. Conforme se va escribiendo el valor, éste se muestra en pantalla, incluyendo el salto de línea.

Es una asignación en tiempo de ejecución

Las entradas de datos deben etiquetarse adecuadamente:

// MAL: cin >> lado1; cin >> lado2;

// BIEN:

cout << "Introduzca la longitud del primer cateto: "; cin >> lado1; cout << "Introduzca la longitud del segundo cateto: "; cin >> lado2;