Mostrando entradas con la etiqueta UD 9.- PROGRAMACIÓN. Mostrar todas las entradas
Mostrando entradas con la etiqueta UD 9.- PROGRAMACIÓN. Mostrar todas las entradas

martes, 19 de julio de 2022

9.- RESUMEN

Y.............Hemos terminado, espero que os haya gustado y os anime a estudiar más programación.  Os dejo un video resumen





8.- DEPURANDO PROGRAMAS

Bueno estamos terminando nuestro paseo por C++. Durante nuestro trabajo seguro que hemos tenido que resolver algunos problemas que nos han surgido en nuestros programas. Analicemos algunos de ellos y los posibles fallos.

1.- ERRORES DE COMPILACIÓN

Entre otros los más comunes son


  1. Definir mal constantes y variables
  2. No terminar las instrucciones
  3. Pérdidas de información
Los errores de compilación se detectan bien porque el propio compilador los indica

2.- ERRORES FUNCIONALES

Son errores asociados al mal funcionamiento del programa. Entre otros pueden ser
  1. Que las variables se queden sin valor.
  2. Malos resultados
  3. Faltan paréntesis.
3.- PROCEDIMIENTOS DE OPTIMACIÓN.

Podemos conseguir que nuestro programa funcione pero no de forma limpia. Para mejorar el rendimiento de nuestro programa debemos depurar y optimizar el mismo.  Por ejemplo en lugar de utilizar un bucle se pueden utilizar otras formas para hacer dicho bucle. Pero el programa no resulta tan limpio ni claro. El uso de array para almacenar valores es una forma de optimizar un programa. La creación de funciones para hacer cálculos complejos también es una herramienta de optimación.


ACTIVIDADES

1.- Anote todos los errores de compilación y funcionales que haya cometido y solventado

2.- Optimice los programas que ha realizado, si puede.

7.- FUNCIONES

En programación se utiliza el concepto matemático de función para compilar programas con C++. Además representan el ejemplo típico de programación modular, en el que cada parte desarrolla un determinado cometido. Analicemos el siguiente ejemplo

#include <stdio.h>
double supt();                                         Definimos la función




main(){
float base;
float altura;
printf("Calcularla superficie de un triangulo");
printf("Introduce la base del triangulo:  %f");
scanf("%f",&base);
printf("\n Introduce la altaura del triángulo:  %f");
scanf("%f",&altura);
printf("\n Superficie:   %lf", supt(base, altura));         Llamada a la función
scanf("lf", &supt);


}


double supt(float ba, float al)             Definición de los parámetros
{
double superficie;
superficie=(ba*al)/2;
return superficie;                  El valor dependiendo de los valores de los parámetros.

}


ACTIVIDADES

1.- Analice el ejemplo anterior y dibuje el correspondiente diagrama de flujo

2.- Diseñe y compile un programa que tenga una función capaz de calcular el volumen de un cilindro a partir del radio de su base y de su altura.

6.- LOS ARRAYS

Los arrays o vectores corresponden a un concepto matemático que tiene múltiples aplicaciones en el mundo de las ciencias y la tecnología. Por ello, su utilización en el campo de la programación se ha utilizado para resolver muchos problemas.
Si queremos representar un punto en el espacio podemos utilizar varios tipos de coordenadas. Las cartesianas son las más sencillas. Representan el punto a partir de las distancias en horizontal, vertical y altura con respecto del origen de coordenadas P(x,y,x). Este es el cocepto simple físico y matemático de vector o array. Generalizando dicho concepto se puede definir array como una colección de datos del mismo tipo que se referencian por medio de un nombre y que almacenan la memoria en posiciones contiguas. El número de datos corresponde a su dimensión. Pero en el campo de la programación los arrays no son simples vectores. En realidad son matrices con dimensión (número de columnas, n) y tamaño (número de filas, m). Siendo n su dimensión y n*m su tamño.  De esta forma los datos se almacenan en memoria desde la posición 0 hasta la (n*m)-1.
Hay dos problemas cuando se crean programas utilizando arrays

1.- Definirles como variables        
tipo identificador_array[n]

2.- Llamar a uno de los valores del array
printf("%d",array[3]);



Este es un ejemplo de aplicación de este concepto


#include <iomanip>

int main ()
{
   int t[ 10 ][5]; // n is matiz of 10x5

   // initialize elements of array n to 0          
   for ( int i = 0; i < 10; i++ )
   {
    for( int j=0; j<5; j++){
    t[i][j]=i+j;
    printf("\t %d", t[i][j]);
  }
       printf("\n");
   }




 }

ACTIVIDADES

1.- Analice el ejemplo referido y construya su diagrama de flujo

2.- Diseñe y compile un programa capaz de ordenar una secuencia de 7 números introducidos mediante teclado. (Nota utilice un array para almacenarles y otro para ordenarles).

5.- BUCLES DE PROGRAMACIÓN

Cualquier programador con conocimientos básicos precisa compilar bucles. Es decir que se repita una o varias acciones hasta que se cumpla una determinada condición. Los ordenadores son máquinas y como tales son capaces de realizar tareas simples sin errores y mucho más rápidamente que los seres humanos. Gracias a los bucles de programación podremos automatizar la mayor parte de las funciones. Pero mucho cuidado en no crear el denominado bucle sinfín. Es preciso que exista alguna forma de salir del bucle y cerrar el programa.
Los bucles pueden consistir en repetir una serie de tareas un determinado número de veces. En estos casos deberán de incluir un contador. Esencialmente un contador es un acumulador n=n+paso. El paso es el incremento que queramos señalizar en nuestro contador. El contador es similar al acumulador en el que el paso sería otra variable. Para evitar utilizar el contador en C++ se puede utilizar ++. Una forma común de bucle que repite según un contador es utilizar for.

for (inicialización; condición; incremento){
acción 1;
....................................
acción n;
}
Cuando se realiza un bucle hasta cumplirse una condición se puede utilizar while.
while (expresión){
acción 1;
.................................
acción n;
}

En este ejemplo se suman 5 números que introducimos mediante teclado.

a) Con WHILE
#include <stdio.h>
main(){
float num, s;
int contador;
s=0;
contador=1;
while (contador<5) { 
printf("Introduce la cifra   ");
scanf("%f", &num);
s=s+num;
contador=contador+1;
}
printf(" La suma es...... %f ", s);
scanf("%f", &s);
}

b) Con FOR


#include "stdio.h"

using namespace std;
main()
{
int numero, suma, contador; 
printf("HALLAREMOS LA SUMA DE 5 NUMEROS  ");
printf("\n  Empezamos......");
for(contador = 0; contador < 5; contador++)
{/*Notemos que escribir contador++ es similar a escribir contador = contador+ 1*/
printf(" INTRODUCE UN NUMERO %d  ", numero);
scanf("%d", &numero);
   suma=suma+numero;
 
}
printf("LA SUMA DE LOS 5 NUMEROS ES %d", suma);


}

ACTIVIDADES

1.- Analice los ejemplos anteriores y construya su diagrama de flujo.

2.- Diseñe y compile un programa que genere los 10 primeros múltiplos del número que usted desee.

4.- ESTRUCTURAS RAMIFICADAS

En curso pasado ya hablamos de las estructuras condicionales, capaces de crear ramificaciones en una estructura secuencial dependiendo de que se cumpla o no una determinada condición. La sintaxis de dicha estructura es casi universal en todos los lenguajes de programación

if (expresión){
acción 1;
acción 2;
....
}
else {
acción 1;
acción 2;
}


Estudie este programa de ejemplo
#include <stdio.h>
main(){
float n,millas,km;
int option;
printf("Escoge la opcion:");
printf("\n 1: Kilometros a millas         ");
printf("\n 2: Millas a kilometros         ");
scanf("%d",&option);
if (option==1){
printf("Introduce los kilometros:   ");
scanf("%f",&n);
millas=n/1.609;
printf("Las millas son: %f",millas);
}
else {
printf("Introduce las millas:    ");
scanf("%f",&n);
km=n*1.609;
printf("Los km son: %f",km);
scanf("%f",&km);
}

}

Las expresiones condicionales pueden ser de muy diferente índole. Es muy común que existan los operadores
== igual
> mayor
< menor
>=mayor o igual
<= menor o igual
!= distinto de 
Pero también se pueden enlazar condiciones mediante operadores lógicos
&& Y
| | O
El operador && se puede sustituir por una estructura condicional compleja denominada if anidados. En la cual existe una condición en el interior de otra condición.
Finalmente, cuando se quieren realizar diferentes acciones dependiendo del valor de una determinada variable se puede utilizar la condición múltiple switch. Veámos como ejemplo el siguiente programa:
#include <stdio.h>
main(){

float n1,n2;
float suma, resta, multiplicacion, division;
char option;

printf("\n Introduce el primer numero:   ");
scanf("%f", &n1);
printf("\n Introduce el segundo numero:   ");
scanf("%f", &n2);

   printf("\n opcion 1 suma, 2 resta, 3 multiplicacion, 4 division         ");
scanf("%d", &option);
switch (option){
case 1:
suma=n1+n2;
printf ("\n La suma es %f:      ", suma);
scanf("%f", &suma);
break;
case 2:
resta=n1-n2;
printf ("\n La resta es %f:   ", resta);
scanf("%f", &resta);
break;
case 3:
multiplicacion=n1*n2;
printf ("\n La multiplicacion es %f:      ", multiplicacion);
scanf("%f", &multiplicacion);
break;
case 4:
division=n1/n2;
printf ("\n La division es %f:   ", division);
scanf("%f", &division);
break;
default:
printf ("\n Error opcion incorrecta");
break;
}
}

ACTIVIDADES

1.- Estudie detenidamente el código de los dos ejemplos y realice un análisis a partir del cual pueda dibujar su diagrama de flujo
2.- Diseñe y compile un programa usando C++ que dado 3 números cualesquiera los ordene de mayor a menor. (NOTA: Comience diseñando el programa con 2 números y luego realice las variaciones pertinentes para 3). ¿Podría hacerlo con más números? ¿Qué modificaciones precisaría el programa?

3.- ESTRUCTURA LINEAL

El lenguaje de programación C++ es un ejemplo típico de aplicación de la programación estructurada. En este tipo de programación se diferencian 3 tipos de estructuras secuencial, selectiva y repetitiva. En realidad cada estructura engloba a la anterior y supone un nivel más de complejidad. Aunque todo esto ya se explicó en el curso pasado. Comencemos analizando un programa muy sencillo que calcula la superficie de un rectángulo a partir de los valores de su base y su altura. El código es el siguiente:


#include <stdio.h>                    Comienza con C++
int base,altura;                           Define variables globales y su tipo entero (int)
float superficie;                         Define variable global y su tipo decimal
main()                                        Comienza el programa
{
printf("La base es.....");             Introduce una cadena de caracteres ("");
scanf("%d", &base);                  Guarda un valor introducido por teclado
printf("La altura es........");
scanf("%d",&altura);
superficie=base*altura;             Realiza una operación matemática
printf("La superficie es    %f", superficie);
scanf("%f",&superficie);

}

Recordemos algunos de los aspectos más importantes de la sitaxis en C++.

tipo nombre_variable;

Existen 5 tipos de datos básicos que son:

char                 Dato de carácter                                         %s                                       
int                    Números enteros con signo                      %d
float                Números con decimales                            %f
double            Números con mucha precisión                  %lf
void                Sin valor

Las operaciones matemáticas se expresan igual que en el resto de las aplicaciones informáticas.
Las lógicas se utilizan poco pero son &, OR y ! (Not)
Las de relación son iguales que en el resto de las aplicaciones informáticas excepto
igual que es == y distinto que es !=.

ACTIVIDADES

1.- Construya el diagrama de flujo correspondiente al programa escogido como ejemplo
2.- Diseñe y compile un programa que transforme grados Centigrados en Fahrenheit. Para ello deberá utilizar la siguiente fórmula   F=(9/5) C +32.
3.- Diseñe y compile un programa que ponga "HOLA, MUNDO"



2.- Diseñe un programa capaz de calcular el área de un polígono




2.- TIPOS DE DATOS EN C

La definición de variables, constantes y su tipo es una etapa que aparece en todos los lenguajes de programación y por supuesto también en C.  En C se reconocen 7 tipos de variables que son


Entero con signo                               %d
Entero sin signo                                %u
Entero largo con signo                     %Id
Entero largo sin signo                      %Iu
Carácter                                           %c
Float (con decimales)                      %f
Tipo double (con decimales)          %If


También resulta interesante expresar algunas secuencias de escape. Entre otras se pueden resaltar

Salto de linea                                                                                   \n
Salto de tabulador                                                                           \t
Provoca un aviso sonoro                                                                \a
Permite mostrar el carácter con "                                                     \"
Permite mostrar el carácter con comillas '                                     \'                        
Permite mostrar el carácter con barra invertida                              \\
Hace que el cursor retroceda un espacio.                                         \b


ACTIVIDADES

1.- Compile y ejecute el siguiente programa.

 #include <stdio.h>

main()
{
int n1,c;
printf("Introduce un numero.........");
scanf("%d", &n1);
c=n1*n1;
printf("El cuadrado es   %d", c); 

}

Identifique los tipos de variables.

2.- ¿Cómo podría mejorar el aspecto en la ejecución?

3.- Diseñe un programa capaz de transformar la temperatura en grado centígrados en grados Fahrenhait. Compílele y ejecútele.

4.- Considerando las siguiente secuencias de escape

\n (salto de linea), \t(Salto de tabulador); \a Provoca aviso sonoro, \" Permite mostrar comillas;
\' Permite mostrar comillas; \\ Muestra caractéres entre barras; 
\b Hace que el cursor retroceda un espacio.

Diseñe y compile un programa utilizando las secuencias de escape anteriores que introducidos 2 números efectúe 4 operaciones. Ejecute y depure el programa.

1.- CONCEPTOS BÁSICOS SOBRE PROGRAMACIÓN

        El siguiente sitio WEB presenta los conceptos básicos sobre programación


PROGRAMACIÓN

En este video también se presentan conceptos básicos sobre programación



     Y este otro desarrolla la unidad didáctica utilizando PYTHON con lenguaje textual de alto nivel

PYTHON

3.- CONTROL DE CALIDAD

ACTIVIDADES 1.- ¿Cuáles son las diferencias entre tolerancia y error de la medida? 2.- Busca en Internet aparatos utilizados en el ...