Curso 0 de Informática

Post on 18-Jul-2022

2 views 0 download

Transcript of Curso 0 de Informática

Curso 0 de Informática

2015 - 2016

1

Curso 0 de Informática

Tema 1: Introducción a la Informática y

Conceptos básicos Introducción a la Informática y

Motivación (I): En los procesos industriales, cada vez es mayor el

• Monitorización, supervisión y control visual de plantas industriales, adquisición automática de datos en planta, comunicaciones e integración de sistemas, autómatas programables, robots, tareas de supervisión y gestión dtrazabilidad industrial...

2

En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para:

Monitorización, supervisión y control visual de plantas industriales, adquisición automática de datos en planta, comunicaciones e integración de sistemas, autómatas programables, robots, tareas de supervisión y gestión d

uso de sistemas informáticos para:

Monitorización, supervisión y control visual de plantas industriales, adquisición automática de datos en planta, comunicaciones e integración de sistemas, autómatas programables, robots, tareas de supervisión y gestión de alarmas,

Motivación (II): ¿Cómo funcionan? Sensores reciben información de dispositivos, que envían a controladores (PLC). Los PLCs actúan ajustando niveles de servicio de los propios dispositivos. Los PLCsprogramados desde un sistema informático.

3

¿Cómo funcionan? Sensores reciben información de dispositivos, que envían a controladores (PLC). Los PLCs actúan ajustando niveles de servicio de los propios dispositivos. Los PLCsprogramados desde un sistema informático.

¿Cómo funcionan? Sensores reciben información de dispositivos, que envían a controladores (PLC). Los PLCs actúan ajustando niveles de servicio de los propios dispositivos. Los PLCs son controlados y

Motivación (y III): Estos sistemas informáticos son manejados mediante IHM (Interfaces Hombre Máquina) pero la

mayoría de las veces, el ingeniero debe “explicarle” al sistema que tiene que hacer. Para ello se usan los lenguajes de programación.

Ilustración 2. Programación con SCADA

4

Estos sistemas informáticos son manejados mediante IHM (Interfaces Hombre Máquina) pero la mayoría de las veces, el ingeniero debe “explicarle” al sistema que tiene que hacer. Para ello se usan

Ilustración 1. Edición de programa para un PLC

Estos sistemas informáticos son manejados mediante IHM (Interfaces Hombre Máquina) pero la mayoría de las veces, el ingeniero debe “explicarle” al sistema que tiene que hacer. Para ello se usan

. Edición de programa para un PLC

5

• Informática. Es la ingeniería que estudia la aplicación del tratamiento automático de la información. Los ordenadores se componen de hardware y software.

• Hardware. El hardware es el componente físico del ordenador. Los elementos hardware principales son cinco, la CPU (Central Processing Unit, procesador y unidad aritmético lógica), la memoria interna, la memoria externa, los dispositivos de entrada y los dispositivos de salida.

6

Existen dos grupos de dispositivos externos:

• Dispositivos de entrada. • Dispositivos de salida.

Memoria externa

Discos, CD, DVD

Memoria Principal,

Memoria Interna

Procesador

Central

Pantalla

7

Software.

Las operaciones que debe realizar el hardware vienen especificadas por una

lista de instrucciones llamadas programas o software.

Programas de usuario

Hardware

Sistema Operativo

8

Un lenguaje de programación es

• Un lenguaje que nos permite comunicarnos con el ordenador.

• Conjunto de reglas, símbolos y palabras para construir programas.

Historia de los lenguajes de programación.

1950 Fortran, Algol, Cobol o LISP.

1960 Basic, PL/1.

1970 Pascal, C, Prolog.

1980 ADA, C++ , Modula-2 .

1990 Delphi (basado en Pascal),

Visual Basic (basado en Basic),

Visual C++, C++ Builder.

1997 JAVA.

9

Según su proximidad a la máquina, los lenguajes de programación se

clasifican en tres categorías: máquina, bajo nivel y alto nivel.

Alto Nivel

Bajo Nivel

(Ensamblador) Traducción

(Compilación o

interpretación)

Lenguaje

máquina

Curso 0 de Informática

10

Curso 0 de Informática

Tema 2: Elementos básicos de

Programación

11

Algoritmo es una sucesión ordenada de acciones que se han de realizar para conseguir la solución correcta de un problema en un espacio de tiempo finito. Programa es un algoritmo escrito en un lenguaje de programación p.e. C++.

La estructura general de un programa en C++ es:

#include <iostream>

using namespace std;

int main () {

//Declaración de variables

//Instrucciones

return 0;

}

12

Constantes.

Son zonas de memoria cuyo valor NO podrá verse alterado durante el

desarrollo del algoritmo.

const int a = 33;

Variables. Son zonas de memoria cuyo valor podrá verse alterado durante el

desarrollo del algoritmo.

int a;

float e;

char h;

bool g;

13

• Identificador Empezará por una letra o bien el carácter subrayado, a continuación

no hay limitación excepto el carácter blanco.

Saldo # saldo

Identificadores

válidos

Identificadores no

válidos

A1876 Cantidad total

X_W_W_1 2numeros

Cinco_numeros new

TASA %cambiodetasa

14

Para declarar una constante o variable:

Nombre_de_tipo Nombre_1, Nombre_2 ...;

Por ejemplo:

int sueldo;

int valor = 620;

int a, b, c;

15

Tipos de datos:

1) Tipo entero

int a;

Suma +

Resta: -

Multiplicación: *

División: /

Módulo (resto): %

16

2) Tipo Real

float a;

Suma: +

Resta: -

Multiplicación: *

División: /

2 tipo entero

2.0 tipo real

3,1416 3.1416

17

3) Tipo Carácter

char a;

char a = ‘z’;

4) Tipo lógico o booleano en el que las variables o constantes pueden tomar cierto (true) o falso (false).

bool a;

a = true;

a = false;

18

int a; a = 3 + 9; a = 10; a = 30; a = a + 1; a++; a = a - 1; a--

Operador de asignación

Identificador = expresión;

19

Operadores aritméticos

+ , - , * , /

Los operandos pueden ser de tipo entero o reales. Si

en la división los operandos son enteros el resultado es un

entero (si la división no es exacta se produce un truncamiento

perdiéndose el resto por grande que sea), en los demás

casos de la división el resultado es un real.

%

Los operandos tienen que ser de tipo entero.

20

Operadores relacionales

= = (igual)

! = (distinto)

< , > , < = , > =

El resultado será true si se cumple la relación o bien false si no

se cumple.

21

Operadores lógicos

&& que es AND.

|| que es OR.

! que es NOT

A || B A = true A = false

B = true true true

B = false true false

A && B A = true A = false

B = true true false

B = false false false

22

Sea el siguiente fragmento de código: int main () { int i, j, k; bool a; i = 10; j = 5; k = 12; a = true; … }

¿Cuál es el valor de estas expresiones booleanas? 1. (i > k) || (j < k) 2. (i > k) && (j < k) 3. (! a) || (j == 5) 4. ( (i + 2) == k) && ( ! ( i > 10)) 5. ! (i == 10 && j == (i / 2)) || (k >= 13) 6. ( (i + j) != k) && (k <= 12)

23

Operaciones básicas de Entrada - Salida.

# include <iostream> // Para poder utilizar

using namespace std; // cin y cout Lectura desde teclado cin >> a ; Leerá desde teclado un valor y lo pondrá en la variable a. Si a es de tipo entero leerá un número entero, si es de tipo real leerá un número con decimales y si es de tipo carácter leerá una tecla.

24

Escritura en pantalla

cout << expresion; Mostrará por pantalla el contenido de la expresión.

cout << “Pon un numero por teclado...“;

Mostrará por pantalla el texto:

Pon un numero por teclado...

cout << “El valor maximo es “ << max;

(Suponiendo que max vale 55)

Mostrará por pantalla el texto:

El valor maximo es 55

Curso 0 de Informática

25

Curso 0 de Informática

Tema 3: Sentencias de ControlSentencias de Control

26

Sentencias Secuenciales.

27

Sentencias Condicionales.

if (expresión lógica)

Sentencia o Bloque de sentencias

else

Sentencia o Bloque de sentencias Opcional

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

if ( a > 0) cout<<”Soy mayor de cero”; if ( a > 0) cout<<”Soy mayor de cero”; else cout<< “Soy igual o menor que cero”;

if (a >= 0) {

cout << “Soy mayor”;

cout << “o igual que cero”; }

28

Sentencias Iterativas.

for (inicialización; condición; incremento)

Sentencia o Bloque de sentencias

while (condición)

Sentencia o Bloque de Sentencias

29

for (i = 0; i < 20; i=i+1) cout<<“Hola”;

for (i = 0; i < 5; i++) for (j = 0; j < 3; j++) cout <<“Hola ”; int a=10;

while (a > 0) cout<<“Hola”; //ATENCION

int a=10; while (a > 0) { cout<<“Hola”; a = a - 1; }

Curso 0 de Informática

30

Curso 0 de Informática

Tema 4: Estructuras de Datos

31

Un array/vector/tabla es una colección de tamaño fijado a priori de elementos del

mismo tipo, cada uno de los cuales se puede acceder directamente mediante un índice. Donde:

N El tipo de los elementos podrá ser cualquiera, incluso de tipo estructurado

N El índice debe de ser un tipo ordinal-entero

int tab1 [100];

char palabra [20];

Denominamos tamaño de un vector al número de elementos de dicho vector.

Si el vector es bidimensional y está declarado así: int tab [5] [10];

El tamaño del vector será 5 * 10 = 50 que son los elementos que se pueden almacenar.

0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

32

Sintaxis:

tipo ident_variable [num_elementos]; Ejemplos: float coleccion[800]; float temperaturas[24]; cin >> temperaturas[13]; cin >> temperaturas[24]; //OJO int alumnos[30] ; float notas[4];

Vectores multidimensionales

tipo ident_variable [a][b][c]...[z]; int valores [5][10][15];

33

int main () {

int tab1[10], tab2[10]; int i;

//¿Copiar una tabla en otra? tab2 = tab1; //ERROR

for (i=0; i<10; i++)

tab2[i] = tab1[i];

return 0;

}

int main () { int tab1[10]; int i; //Rellenar una tabla con valores desde teclado cin >> tab1; //ERROR for (i=0; i<10; i++) cin >> tab1[i];

return 0;

}

34

int main () { int tab1[10]; int i; //Escribir en pantalla los valores de una tabla cout << tab1;, //ERROR for (i=0; i<10; i++) cout << tab1[i]; } int main () { int tab1[10][10]; int i,j; //Escribir los valores de una tabla bidimensional cout << tab1;, //ERROR for (i=0; i<10; i++) for (j=0; j<10; j++) cout << tab1[i][j]; }

35

Relación de Problemas

EJERCICIO 1.

Diseñe un programa en C++ que pida dos números enteros por teclado y a continuación muestre por

pantalla el valor de la suma, resta, multiplicación y cociente de estos dos números.

EJERCICIO 2.

Diseñe un programa en C++ que pida por teclado el valor del radio de una circunferencia, y a continuación

muestre por pantalla el valor de la longitud de la circunferencia, el valor de la superficie del círculo y el valor del

volumen de la esfera que tengan por radio el valor leído anteriormente

EJERCICIO 3.

Diseñe un programa en C++ que lea desde teclado una cantidad positiva de segundos y a continuación

muestre por pantalla su equivalente en horas, minutos y segundos.

EJERCICIO 4.

Diseñe un programa en C++ que lea desde teclado dos valores enteros, los intercambie en memoria y a

continuación muestre sus valores por pantalla.

36

EJERCICIO 5.

¿Qué mostraría por pantalla el siguiente programa?

#include <iostream>

using namespace std;

int main () {

int primero;

int segundo;

int tercero;

cout <<primero;

cout <<segundo;

cout <<tercero;

return 0;

}

EJERCICIO 6.

Escribir un programa en C++ que lea una nota de un alumno por teclado y muestre por pantalla la

calificación obtenida. De 0 a 4.99 (Suspenso), de 5 a 6.99 (Aprobado), de 7 a 8.99 (Notable) y de 9 a 10

(Sobresaliente).

37

EJERCICIO 7.

Escribir un programa en C++ que lea dos números enteros y exprese por pantalla cual es el valor más grande, hay

que tener en cuenta si los dos son iguales.

EJERCICIO 8. Escriba un programa en C++ que lea un número entero por teclado, correspondiendo a un año y exprese por

pantalla si ese año es bisiesto o no. Un año es bisiesto si es múltiplo de 400, en caso contrario será bisiesto si es

múltiplo de 4 pero no de 100. Por ejemplo el año 2000 ha sido bisiesto por ser múltiplo de 400, el año 2100 no

será bisiesto porque no es múltiplo de 400, sí es múltiplo de 4, pero también lo es de 100, y el año 2016 será

bisiesto ya que no es múltiplo de 400, es múltiplo de 4 y no es múltiplo de 100.

EJERCICIO 9. Escriba un programa en C++ que muestre por pantalla el siguiente menú:

****** MENU *****

1.- Leer datos

2.- Escribir datos

3.- Salir

Pon la opcion que deseas :

Si el usuario pulsa el 1 pedirá por teclado dos números enteros.

Si se pulsa un 2 mostrará por pantalla el valor de los dos números.

Si pulsa un 3 dará un mensaje por pantalla despidiéndose y acabará el programa.

Si se pulsa un valor diferente dará un mensaje de error y acabará el programa.

38

EJERCICIO 10. Escriba un programa en C++ de tal forma que lea una nota por teclado y muestre por pantalla si esa nota es

correcta o no. Una nota es correcta si está entre 0 y 10, límites incluidos.

EJERCICIO 11. Escriba un programa en C++ de tal forma que lea un número entero por teclado y muestre por pantalla si es

correcto o no. Un número es correcto si está entre 0 y 10, límites no incluidos.

EJERCICIO 12. Escriba un programa en C++ de tal forma que lea un número entero por teclado y muestre por pantalla si es

correcto o no. Un número es correcto si está entre 0 y 5, o bien entre 15 y 20, límites incluidos.

EJERCICIO 13. Escriba un programa en C++ que lea la edad de una persona, la distancia en km. de un viaje y el número de

días del viaje. Mostrando por pantalla el precio que debe de abonar por el mismo teniendo en cuenta que cada km.

cuesta 0,5 euros. Ahora bien, si la persona viaja más de 7 días y la distancia es superior a 700 km, o bien es

mayor de 55 años tendrá una reducción del 25%.

39

EJERCICIO 14.

Escriba un programa en C++ tal que lea desde teclado un número entero y muestre por pantalla su tabla de

multiplicar.

Por ejemplo, si se lee un 5 deberá mostrar por pantalla:

5 x 1 = 5

5 x 2 = 10

5 x 3 = 15

5 x 9 = 45

EJERCICIO 15.

Escriba un programa en C++ tal que lea desde teclado un número entero y muestre por pantalla el factorial

de este número.

EJERCICIO 16.

Escriba un programa en C++ de tal forma que lea una nota por teclado, una nota es correcta si está entre 0 y

10, límites incluidos. Si es incorrecta se volverá a solicitar hasta que sea correcta.

EJERCICIO 17.

Escriba un programa en C++ de tal forma que lea una nota por teclado, una nota es correcta si está entre 0 y

10, límites no incluidos. Si es incorrecta se volverá a solicitar hasta que sea correcta.

40

EJERCICIO 18.

Escriba un programa en C++ de tal forma que lea un número entero por teclado, un número es correcto si

está entre 0 y 5, o bien entre 15 y 20, límites incluidos. Si el número es incorrecto se volverá a pedir hasta que

sea correcto.

EJERCICIO 19.

Problema ampliado del menú de alternativas.

Escriba un programa en C++ que muestre por pantalla el siguiente menú:

****** MENU *****

1.- Leer datos

2.- Escribir datos

3.- Salir

Pon la opcion que deseas:

Si el usuario pulsa el 1 pedirá por teclado dos números enteros y volverá a salir el menú.

Si se pulsa un 2 mostrará por pantalla el valor de los dos números y volverá a salir el menú..

Si pulsa un 3 dará un mensaje por pantalla despidiéndose y acabará el programa, es la única forma de que acabe

el programa.

Si se pulsa un valor diferente dará un mensaje de error y volverá a salir el menú.

41

EJERCICIO 20.

Diseñe un programa en C++ de tal forma que pida por teclado el número de alumnos que se han presentado

al examen. A continuación pedirá tantas notas como alumnos se han presentado, y después mostrará por pantalla

el número de suspensos, aprobados, notables, sobresalientes.

EJERCICIO 21.

Diseñe un programa en C++ tal que lea desde teclado números enteros rellenando una tabla de veinte

elementos. A continuación mostrará por pantalla la suma de los elementos positivos y la suma de los elementos

negativos.

EJERCICIO 22.

Diseñe un programa en C++ tal que lea una tabla de diez números enteros desde teclado, y a continuación

muestre por pantalla cuantos valores son pares, cual es el valor mayor y cual es el menor.

EJERCICIO 23.

Diseñe un programa en C++ tal que rellene una tabla de diez números enteros, poniendo en cada elemento

de la tabla el valor de su índice. A continuación pedirá por teclado un número entero y mostrará en pantalla si ese

número está almacenado en esa tabla o no.

42

EJERCICIO 24.

Diseñe un programa en C++ tal que lea desde teclado números enteros rellenando una tabla de dos

dimensiones con 3 filas y 3 columnas. A continuación pedirá al usuario que indique una fila y después mostrará

por pantalla el mayor de esa fila.

EJERCICIO 25.

Diseñe un programa en C++ tal que lea dos tablas de diez números enteros desde teclado, y a continuación

muestre por pantalla si las dos tablas tienen el mismo contenido o no.