





































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Fonaments d'Informàtica, Profesor: , Carrera: Enginyeria Mecànica, Universidad: UPC
Tipo: Apuntes
1 / 77
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!






































































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):
Datos de entrada: las coordenadas (X,Y) y la longitud L. Datos de salida: ninguno.
Instrucciones para el preparado de una paella:
¿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
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
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
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
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
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;
cout << "Introduzca la longitud del primer cateto: "; cin >> lado1; cout << "Introduzca la longitud del segundo cateto: "; cin >> lado2;