curso 0 de informática

42
Curso 0 de Inform 2015 - 2016 1 mática Tema 1: Introducción a la Informáti Conceptos básicos ica y

Upload: others

Post on 18-Jul-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: Curso 0 de Informática

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,

Page 3: Curso 0 de Informática

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

Page 4: Curso 0 de Informática

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

Page 5: Curso 0 de Informática

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.

Page 6: Curso 0 de Informática

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

Page 7: Curso 0 de Informática

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

Page 8: Curso 0 de Informática

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.

Page 9: Curso 0 de Informática

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

Page 10: Curso 0 de Informática

Curso 0 de Informática

10

Curso 0 de Informática

Tema 2: Elementos básicos de

Programación

Page 11: Curso 0 de Informática

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;

}

Page 12: Curso 0 de Informática

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;

Page 13: Curso 0 de Informática

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

Page 14: Curso 0 de Informática

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;

Page 15: Curso 0 de Informática

15

Tipos de datos:

1) Tipo entero

int a;

Suma +

Resta: -

Multiplicación: *

División: /

Módulo (resto): %

Page 16: Curso 0 de Informática

16

2) Tipo Real

float a;

Suma: +

Resta: -

Multiplicación: *

División: /

2 tipo entero

2.0 tipo real

3,1416 3.1416

Page 17: Curso 0 de Informática

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;

Page 18: Curso 0 de Informática

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;

Page 19: Curso 0 de Informática

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.

Page 20: Curso 0 de Informática

20

Operadores relacionales

= = (igual)

! = (distinto)

< , > , < = , > =

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

se cumple.

Page 21: Curso 0 de Informática

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

Page 22: Curso 0 de Informática

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)

Page 23: Curso 0 de Informática

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.

Page 24: Curso 0 de Informática

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

Page 25: Curso 0 de Informática

Curso 0 de Informática

25

Curso 0 de Informática

Tema 3: Sentencias de ControlSentencias de Control

Page 26: Curso 0 de Informática

26

Sentencias Secuenciales.

Page 27: Curso 0 de Informática

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”; }

Page 28: Curso 0 de Informática

28

Sentencias Iterativas.

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

Sentencia o Bloque de sentencias

while (condición)

Sentencia o Bloque de Sentencias

Page 29: Curso 0 de Informática

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; }

Page 30: Curso 0 de Informática

Curso 0 de Informática

30

Curso 0 de Informática

Tema 4: Estructuras de Datos

Page 31: Curso 0 de Informática

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

Page 32: Curso 0 de Informática

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];

Page 33: Curso 0 de Informática

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;

}

Page 34: Curso 0 de Informática

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]; }

Page 35: Curso 0 de Informática

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.

Page 36: Curso 0 de Informática

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).

Page 37: Curso 0 de Informática

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.

Page 38: Curso 0 de Informática

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%.

Page 39: Curso 0 de Informática

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.

Page 40: Curso 0 de Informática

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ú.

Page 41: Curso 0 de Informática

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.

Page 42: Curso 0 de Informática

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.