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


Lenguaje de programación Dev C++, Apuntes de Cálculo

Lección 1: Lenguaje de programación Dev C++. 1.1 Introducción al lenguaje Dev C++ y Estructura secuencial. 1.2 Estructuras de decisión if then else y switch ...

Tipo: Apuntes

2021/2022

Subido el 10/10/2022

jordi_gutierrez89
jordi_gutierrez89 🇪🇸

4.3

(13)

74 documentos

1 / 38

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Asignatura: PROGRAMACIÓN
Código: TE243
Prerrequisitos: Algebra Lineal (S)*
Intensidad horaria: 80 H.P.S.
Lenguaje de programación
Dev C++
Introducción: Dev-C++ es un Entorno Integrado de Desarrollo para el lenguaje de
programación C/C++ que usa Mingw (Minimalist GNU for Windows, www.mingw.org ) de GCC
(GNU Compiler Collection www.gnu.org/home.es.html ). Es un software de libre distribución
(www.bloodshed.net) sujeto a los términos de la Licencia Pública General (GPL) de GNU.
Algunas de las características de Dev-C++ son:
- Soporta compiladores basados en GCC, por ejemplo Mingw.
- Tiene integrado un depurador basado en GDB (Gnu DeBugger).
- Mantiene una lista con las clases utilizadas durante la edición de un programa.
- Mantiene una lista de las funciones definidas en la implementación del
programa.
- Tiene un manejador de proyectos.
- Soporta la actualización del software y bibliotecas a través de Internet.
http://www.uhu.es/javier.fernandez/El%20Entorno%20DevC.pdf
Objetivos:
Introducción al lenguaje Dev C++ y Estructura secuencial
Estructura de decisión (if then else)
Estructuras repetitivas (for, while y do while)
Conversión de un algoritmo a función
Programa menú funciones
Contenido
Lección 1: Lenguaje de programación Dev C++
1.1 Introducción al lenguaje Dev C++ y Estructura secuencial
1.2 Estructuras de decisión if then else y switch case
1.3 Estructuras repetitivas for, while y do while
Lección 2: Menú funciones
2.1 Conversión de un algoritmo a función
2.2 Programa menú funciones con anidamientos
DESARROLLO
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

Vista previa parcial del texto

¡Descarga Lenguaje de programación Dev C++ y más Apuntes en PDF de Cálculo solo en Docsity!

Asignatura: PROGRAMACIÓN

Código: TE

Prerrequisitos: Algebra Lineal (S)*

Intensidad horaria: 80 H.P.S.

Lenguaje de programación

Dev C++

Introducción: Dev-C++ es un Entorno Integrado de Desarrollo para el lenguaje de programación C/C++ que usa Mingw (Minimalist GNU for Windows, www.mingw.org ) de GCC (GNU Compiler Collection www.gnu.org/home.es.html ). Es un software de libre distribución (www.bloodshed.net) sujeto a los términos de la Licencia Pública General (GPL) de GNU.

Algunas de las características de Dev-C++ son:

  • Soporta compiladores basados en GCC, por ejemplo Mingw.
  • Tiene integrado un depurador basado en GDB (Gnu DeBugger).
  • Mantiene una lista con las clases utilizadas durante la edición de un programa.
  • Mantiene una lista de las funciones definidas en la implementación del programa.
  • Tiene un manejador de proyectos.
  • Soporta la actualización del software y bibliotecas a través de Internet.

http://www.uhu.es/javier.fernandez/El%20Entorno%20DevC.pdf

Objetivos:

 Introducción al lenguaje Dev C++ y Estructura secuencial  Estructura de decisión (if then else)  Estructuras repetitivas (for, while y do while)  Conversión de un algoritmo a función  Programa menú funciones

Contenido

Lección 1: Lenguaje de programación Dev C++

1.1 Introducción al lenguaje Dev C++ y Estructura secuencial 1.2 Estructuras de decisión if then else y switch case 1.3 Estructuras repetitivas for, while y do while

Lección 2: Menú funciones

2.1 Conversión de un algoritmo a función 2.2 Programa menú funciones con anidamientos

DESARROLLO

Tema 1.1: Introducción al lenguaje Dev C++ y Estructura secuencial

El lenguaje de programación C es un lenguaje de alto nivel que se puede caracterizar por los siguientes aspectos:

 Es de propósito general, esto significa que puede ser usado tanto para el desarrollo de sistemas operativos como para programas científicos, programas de aplicación o programas de educación y juegos.  Posee una alta transportabilidad ya que los programas escritos en C pueden ser llevados de un tipo de ordenador a otro y funcionarán. Los cambios que hay que realizar son mínimos.  Los compiladores generan ejecutables más pequeños porque por norma general, los programas escritos en lenguaje C poseen menos líneas de código que otros lenguajes de programación de alto nivel.  El lenguaje de programación C es un lenguaje imperativo o procedimental. Esto significa que indica secuencias de acciones con el fin de llegar a un objetivo. Generalmente los lenguajes imperativos o procedimentales contienen una parte declarativa. El lenguaje C da órdenes a la máquina.  Es un lenguaje estructurado ya que los programas escritos con él se pueden organizar en módulos.

http://recursostic.educacion.es/observatorio/web/ca/software/programacion/745- introduccion-a-la-programacion-con-el-lenguaje-c

Objetivos:Introducción al lenguaje Dev C++ y Estructura secuencialEstructuras de decisión if then else y switch caseEstructuras repetitivas for, while y do whileConversión de un algoritmo a funciónPrograma con menú funciones

o Palabras reservadas en lenguaje C

Las palabras reservadas tienen un significado especial para el compilador y representan una

instrucción propia de su lenguaje, no se pueden utilizar para identificar variables y se escriben

siempre en minúsculas. Ver Tabla 1.

Tabla 1. Palabras reservadas en lenguaje C

Asm Auto^ Bool^ break^ Case^ catch Char Class Const const_cast continue default Delete Do Double dynamic_cast Else enum Explicit Extern False float For friend Goto If Inline int Long mutable namespace New Operator private protected Public Register reinterpret_cast Return short Signed Sizeof Static static_cast Struct switch template This Throw True Try typedef Typeid Typename Unión Unsigned Using while Void Volatile

Con la función system(“pause”) se utiliza para pausar un programa una vez esté corriendo y

reemplaza a la función getch() de la librería #include. Ambas hacen lo mismo y se

colocan la final antes de cerrar el programa principal.

#include: contiene los prototipos de las funciones y macros de clasificación de caracteres. Ver Tabla 5.

Tabla 5. Archivos que utiliza la librería < string.h > memchr memcmp memcpy memmove memset strcat strchr memchr strcmp strcoll strcpy strcspn strerror strlen strmcat strcmp strmcmp strmcpy strpbrk strrchr strspn strstr strtok strmcmp strxfrm strxfrm

#include: contiene varias funciones para comprobación de tipos y transformación de caracteres. Ver Tabla 6

Tabla 6. Archivos que utiliza la librería < ctype.h > tolower toupper

Toupper  instrucción que convierte a mayúscula por ejemplo [ s -> S ]

#include: contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de funciones matemáticas. Ver Tabla 7

Tabla 7. Archivos que utiliza la librería < math.h > acos asin atan atan2 ceil cos cosh exp fabs floor fmod frexp ldexp log log10 modf pow sin sinh sqrt tan tanh

#include: contiene los prototipos de las funciones, macros, y tipos para manipular la hora y la fecha del sistema. Ver Tabla 8.

Tabla 8. Archivos que utiliza la librería < time.h > asctime clock ctime difftime Gmtime localtime mktime strftime time

#include: contiene los prototipos de las funciones, macros, y constantes para preparar y manipular la consola en modo texto en el entorno de MS-DOS®. Ver Tabla

Tabla 9. Archivos que utiliza la librería < conio.h > cgets clreol clrscr cprintf cputs cscanf delline

getche getpass gettext gettextinfo gotoxy highvideo inport

insline Getch lowvideo movetext normvideo outport putch

puttext setcursortype textattr textbackground textcolor textmode ungetch

#include: en esta librería residen los flujos stream (cin y cout) acompañados del operador de inserción (<<) y de extracción (>>) respectivamente y se utiliza para datos de entrada y salida como printf y scanf de la librería ****. Las { } en ambos ejemplos indican el comienzo y el final del programa principal o función principal.

Ejemplo comparativo utilizando la librería ****.

*/ cuadrado de un numero real */

include

include

main() { float x, cuadrado; printf("Teclee un numero real: "); scanf("%f",&x); cuadrado=xx; printf("su cuadrado es %f : ",cuadrado); getch(); }*

Se puede escribir el mismo código con la librería .

**// cuadrado de un numero real

include

include

main() { float x, cuadrado; cout<<"Teclee un numero real: " ; cin>>x; cuadrado=xx; cout<<"su cuadrado es: " << cuadrado; getch(); }*

o Cadenas de formato: las cadenas de formatos como printf, permite dar formato específico a la salida y a cada símbolo cuando le antecede un %. Un dato es la expresión general que describe los objetos con los cuales opera una computadora. Los tipos de datos más comunes son: char, int, float, long, short, doublé, void etc. Ver Tabla 10.

Tabla 10. Cadenas de formatos %d,% i entero decimal con signo, (eje: 38) %o entero octal sin signo, (eje: o43) %u entero decimal sin signo, (eje: 47) %x entero hexadecimal sin signo (en minúsculas) , (eje: 0x32) %X entero hexadecimal sin signo (en mayúsculas) , (eje: 0X32) %f Coma flotante en la forma [-]dddd.dddd ,^ (eje:^ - 3.2, 56.896) %e Coma flotante en la forma [-]d.dddd e[+/-]ddd, (eje: 2.3e4, 4.879e-4) %g Coma flotante según el valor

o Operadores unarios: los operadores unarios admiten un único argumento y cuentan con operador de cambio de signo (-) y también con los de incremento (++) y decremento (- -) y son una forma fácil de sumar o restar 1 a una variable.

Tabla 13. Operadores unarios

variable ++ Postincremento ++variable Preincremento variable - - Postdecremento

    • variable Predecremento

Ejemplos:

 ++a;  a=a+1;  - -b;  b=b-1;

Los formatos postfijos se conforman de modo diferente según la expresión en que se aplica,

ejemplos:

 b=++a;  a=a+1; b=a;  b=a++;  b=a; a=a+1;  int i,j,k=5; k++;  k ahora vale 6, es igual que ++k; --k;  k vale ahora 4, es igual que k--; i=4k++; k vale ahora 5 e i= j=4++k; k vale ahora 6 e j=

o Operadores aritméticos: los operadores aritméticos se utilizan para hacer cálculos aritméticos. Ejemplos: División entera 19%6= 19/6= 15/2= 15%2= División real 10/3=3.

Tabla 14. Operadores aritméticos

Nombre Función Multiplicación * División / Módulo o resto de una división entera % Suma + Resta -

Ejemplo : cuántos pares e impares hay, utilizando el modulo división entera?

/* cuantos pares e impares hay?*/ #include #include main() { system("COLOR F1"); int a,b,c,impar,par,ed,ef,eg; printf("Digite tres números enteros\n"); scanf("%d %d %d",&a,&b,&c); impar=((a%2)+(b%2)+(c%2)); par=3-impar; ed=(a%2); ef=(b%2); eg=(c%2); printf("\nHay %d numero(s) impar(es)\n\n",impar); printf("\nHay %d numero(s) par(es)\n\n",par); printf("\nporque en el modulo de una division entera 0 es par y 1 es impar "); printf("\nentonces hay %d %d %d \n\n ",ed,ef,eg); system("pause"); }

Código ascii: la siguiente figura 1, muestra el código ascii imprimibles y no imprimibles.

Figura 1. Código ascii

http://ticslevalle.blogspot.com/2013/04/codigo-ascii.html

La sentencia #include no es una instrucción C. El símbolo # la identifica como una directiva, es decir, una orden para el preprocesador de C, responsable de realizar ciertas tareas previas a la compilación.

Los archivo *.h se denominan archivos de cabecera. Todos los programas C requieren la inclusión de uno o varios archivos de este tipo, por lo que normalmente es necesario utilizar varias líneas #include.

main ()

Es el nombre de una función. Un programa C se compone de una o más funciones, pero al menos una de ellas debe llamarse main() , pues los programas C empiezan a ejecutarse por esta función.

Los paréntesis identifican a main() como una función. Generalmente, dentro de ellos se incluye información que se envía a la función. En este caso no hay traspaso de información por lo que no hay nada escrito en su interior; aun así son obligatorios. El cuerpo de una función (conjunto de sentencias que la componen) va enmarcado entre llaves { y }. Ese es el significado de las llaves que aparecen en el ejemplo.

int docena;

Es una sentencia declarativa. Indica que se va a utilizar una variable llamada docena que es de tipo entero. La palabra int es una palabra clave de C que identifica uno de los tipos básicos de datos que tiene C. En C es obligatorio declarar todas las variables antes de ser utilizadas. El " ; " identifica la línea como una sentencia C.

docena = 12;

Es una sentencia de asignación. Almacena el valor 12 a la variable docena. Obsérvese que acaba con punto y coma. Como en la mayoría de los lenguajes, el operador de asignación en C es el signo igual " = ".

printf ("Una docena son %d unidades\n", docena);

Esta sentencia es importante por dos razones: en primer lugar, es un ejemplo de llamada a una función. Además ilustra el uso de una función estándar de salida: la función printf().

La sentencia consta de dos partes:

  • El nombre de la función: printf().
  • Los argumentos. En este caso hay dos separados por una coma:
    • "Una docena son %d unidades\n"
    • docena Como toda sentencia C acaba con punto y coma.

La función printf() funciona de la siguiente forma: el primer argumento es una cadena de formato. Esta cadena será lo que, básicamente, se mostrará en pantalla. En la cadena de formato pueden aparecer códigos de formato y caracteres de escape.

Un código de formato comienza por el símbolo % e indica la posición dentro de la cadena en donde se imprimirá el segundo argumento, en este caso, la variable docena.

Más adelante estudiaremos todos los códigos de formato de Turbo C o Dev-C++. En este ejemplo, %d indica que en su lugar se visualizará un número entero decimal. Un carácter de escape comienza por el símbolo **. Son caracteres que tienen una interpretación especial. La secuencia \n es el carácter nueva línea y equivale a la secuencia LF+CR (salto de línea + retorno de cursor).

La función printf() pertenece a la biblioteca estándar de C. Las definiciones necesarias para que funcione correctamente se encuentran en el archivo stdio.h , de ahí que sea necesaria la sentencia **#include **.

Ejemplo 2: scanf()

El siguiente programa realiza la conversión de pies a metros usando la equivalencia: 1 pie = 0.3084 metros El programa solicita por teclado el número de pies y visualiza en pantalla los metros correspondientes.

/ Ejemplo 2. Programa PIES.C / #include main () { int pies; float metros; printf ("\n¿Pies?: "); scanf ("%d", &pies); metros = pies * 0.3084; printf ("\n%d pies equivalen a %f metros\n", pies, metros); } Este programa hace aparecer en pantalla:

¿Pies?: 24 24 pies equivalen a 7.315200 metros

Estudiaremos ahora las novedades que aparecen en este programa.

float metros;

Es una sentencia declarativa que indica que se va a utilizar una variable llamada metros , que es del tipo float. Este tipo de dato se utiliza para declarar variables numéricas que pueden tener decimales.

printf ("\n¿Pies?: ");

Es la función printf() comentada antes. En esta ocasión sólo tiene un argumento: la cadena de control sin códigos de formato. Esta sentencia simplemente sitúa el cursor al principio de la siguiente línea ( \n ) y visualiza la cadena tal como aparece en el argumento. scanf ("%d", &pies);

Este programa hace aparecer en pantalla:

Teclee dos números enteros: 23 4 El resultado es 92

Las novedades que se presentan en este programa se comentan a continuación.

scanf ("%d %d", &a, &b); La cadena de control de scanf() contiene dos códigos de formato. Al igual que ocurre en printf() , se precisan dos argumentos más, uno por cada código de formato. Los dos números se teclean separados por espacios en blanco, tabuladores o por la tecla Intro.

return (c);

La palabra clave return se usa dentro de las funciones para salir de ellas devolviendo un valor. El valor devuelto mediante return es el que asume la función. Eso permite tener sentencias como producto = multiplica (int a, int b);

es decir, sentencias en las que la función está a la derecha del operador de asignación. Para nuestros propósitos actuales podemos decir (aunque esto no sea exacto) que después de la sentencia return la función multiplica() actúa como si fuese una variable que almacena el valor devuelto.

Los paréntesis son opcionales, se incluyen únicamente para clarificar la expresión que acompaña a return. No deben confundirse con los paréntesis de las funciones.

*Ejemplo 4: Calcular el área de un círculo con printf y scanf / Programa para calcular el área de un círculo */

include

include

main() { float radio, area; printf("Radio =? "); scanf("%f",&radio); area=3.1416radioradio; printf("Area = %f",area); getch(); }**

Este programa hace aparecer en pantalla: Radio =? 4 Area = 50.

Ejemplo 5: Cadenas de un vector con printf o puts /cadenas en un vector/ #include #include **

main() { char nombre[15], apellido1[15], apellido2[15];

printf("Introduce tu nombre: "); scanf("%s",nombre); printf("Introduce tu primer apellido: "); scanf("%s",apellido1); printf("Introduce tu segundo apellido: "); scanf("%s",apellido2);

/para obtener la salida puedo decir/

printf("Usted es %s %s %s\n",nombre,apellido1,apellido2);

/* o escribir la salida utilizando la directiva puts (colocar)*/

puts(nombre); puts(apellido1); puts(apellido2);

/Al final cierro con esta directiva que regresa un carácter tan pronto se oprime una tecla sin esperar que el usuario oprima Enter/, y se coloca antes de cerrar el programa para poder visualizarlo.

getch (); }

 HACER LOS EJERCICIOS DE TALLER 1 Y TALLER 2 SECUENCIALES

cadena[0]='L'; cadena[1]='e'; cadena[2]='t'; cadena[3]='r'; cadena[4]='a'; cadena[5]='s'; cadena[6]=0; /* Carácter nulo, significa el fin del texto */

printf("La cadena es: %s\n", cadena); printf("La tercera letra de la cadena es: %c\n", cadena[2]); printf("Las últimas tres letras de la cadena son: %s\n", &cadena[3]); getch ();

}

Ejemplo 3: cadenas en un vector

/cadenas en un vector/

#include

#include

main()

{

char nombre[15], apellido1[15], apellido2[15];

printf("Introduce tu nombre: "); scanf("%s",nombre); printf("Introduce tu primer apellido: "); scanf("%s",apellido1); printf("Introduce tu segundo apellido: "); scanf("%s",apellido2); printf("Usted es %s %s %s\n",nombre,apellido1,apellido2);

printf("o escribirlo por filas con puts: ");

puts(nombre); puts(apellido1); puts(apellido2); getch ();

}

Estructuras de decisión o selección

Las sentencias de decisión o también llamadas estructuras de control que realizan una pregunta la cual retorna verdadero o falso (evalúa una condición) y selecciona la siguiente instrucción a ejecutar dependiendo la respuesta o resultado.

Figura 2: estructura de decisión o alternativa simple

#include #include int main() { int num; printf( "Introduce un número " ); scanf( "%i", &num ); if (num==10) { printf( "El número es correcto\n" ); } getch(); }

Figura 3: estructura de decisión o alternativa doble

#include #include int main() {

Anidamientos de estructuras de decisión. Se anidan colocando una estructura en el interior de otra estructura, no debe haber solapamiento. También se cumple para las demás estructuras repetitivas. Ver figura 5.

Figura 5. Anidamientos

Estructura switch-case (según-caso)

La estructura según caso, es una estructura de decisión múltiple. Se evalúa una expresión y en función del valor resultante se realiza una determinada tarea o conjunto de tareas. En caso de existir un valor no comprendido entre 1 y n, se realiza una acción excluyente o por defecto (default). En la figura 6, se muestra el diagrama de flujo de esta estructura.

Figura 6. Estructura switch case (según caso)

Código fuente: switch (expresion) { case 1: instruccion; break; case 2: instruccion; break; case 3: instruccion; break; case n: instruccion; break; default : }

Cuando se ejecuta la instrucción switch, la expresión se evalúa y se transfiere el control directamente al grupo de instrucciones cuya etiqueta case tenga el mismo valor de expresión. Si ninguno de los valores de las etiquetas case coincide con el valor de expresión, entonces no se seleccionará ninguno de los grupos de la instrucción switch o se realizara la instrucción por defecto (default). El valor por defecto (default) es una forma conveniente de generar un mensaje de error en caso de tener entradas inválidas.

break: es una sentencia de salto que se utiliza cuando se requiere salir de un ciclo incondicionalmente antes de que se termine la iteración actual.

Probar las estructuras según caso y entenderlas

Ejemplo 7: introduce un número #include #include int main() { int num; printf( "\nIntroduce un numero entero \n\n " ); printf( "\n1-Verifique si es el número " ); printf( "\n2-Verifique si es el número " ); printf( "\n3-Verifique si es el número " ); printf( "\n4-por defecto \n\n " ); scanf( "%i", &num ); switch( num ) { case 1: printf( "\nEs un 1\n" ); break; case 2: printf( "\nEs un 2\n" ); break; case 3: printf( "\nEs un 3\n" );