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


Introducción a la Programación en C y C++: Teoría, Librerías y Ejemplos, Ejercicios de Programación Informática

Actividad fundamental 2 de programación estructurada

Tipo: Ejercicios

2021/2022

Subido el 12/09/2023

natalia-mora-24
natalia-mora-24 🇲🇽

1 documento

1 / 28

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Contenido
Teoría .................................................................................................................................................. 1
Librerías ........................................................................................................................................... 1
Tipos de datos ................................................................................................................................. 4
Tipos de errores .............................................................................................................................. 7
Tipos de toma de decisiones ......................................................................................................... 15
Tipos de Ciclos ............................................................................................................................... 17
Programas en C ................................................................................................................................. 19
Programa que realiza la suma de 2 números ................................................................................ 19
....................................................................................................................................................... 19
Área del círculo.............................................................................................................................. 20
Promedio ....................................................................................................................................... 21
Raíz cuadrada ................................................................................................................................ 22
Potencia ......................................................................................................................................... 23
Programas en Raptor y C (Selección)1 .............................................................................................. 24
Programas en Raptor y C (selección y ciclos) .................................................................................... 26
Bibliografía ........................................................................................................................................ 28
Teoría
Librerías
<algorithm> Parte de STL que describe los algoritmos
<biset> Parte de STL relativa a contenedores tipo biset Set de valores booleanos
<complex> Parte de la librería numérica de la STL relativa a los complejos
<deque> Parte de la STL relativa a contenedores tipo deque, un tipo de colas:
“Double-ended-queue”
<exception> Parte de la librería de diagnóstico relativa al manejo de excepciones
<fstream> Flujos hacia /desde ficheros
<functional> Parte de la STL relativa a Objetos-función
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Vista previa parcial del texto

¡Descarga Introducción a la Programación en C y C++: Teoría, Librerías y Ejemplos y más Ejercicios en PDF de Programación Informática solo en Docsity!

Contenido

Teoría .................................................................................................................................................. 1 Librerías ........................................................................................................................................... 1 Tipos de datos ................................................................................................................................. 4 Tipos de errores .............................................................................................................................. 7 Tipos de toma de decisiones ......................................................................................................... 15 Tipos de Ciclos ............................................................................................................................... 17 Programas en C ................................................................................................................................. 19 Programa que realiza la suma de 2 números ................................................................................ 19 ....................................................................................................................................................... 19 Área del círculo.............................................................................................................................. 20 Promedio ....................................................................................................................................... 21 Raíz cuadrada ................................................................................................................................ 22 Potencia......................................................................................................................................... 23 Programas en Raptor y C (Selección)1 .............................................................................................. 24 Programas en Raptor y C (selección y ciclos) .................................................................................... 26 Bibliografía ........................................................................................................................................ 28

Teoría

Librerías

Parte de STL que describe los algoritmos

Parte de STL relativa a contenedores tipo biset Set de valores booleanos

Parte de la librería numérica de la STL relativa a los complejos

Parte de la STL relativa a contenedores tipo deque, un tipo de colas: “Double-ended-queue”

Parte de la librería de diagnóstico relativa al manejo de excepciones

Flujos hacia /desde ficheros

Parte de la STL relativa a Objetos-función

Manipuladores

: Algoritmos estándar para los flujos de salida.

Supreclases para manejo de flujos de E/S

Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por ejemplo ostream

Parte de la STL que contiene los algoritmos estándar de E/S

<iostream.h> Contiene las funciones de ingresar y mostrar datos.

<time.h> Contiene las funciones para tratamiento y conversión entre formatos de fecha y hora.

<iostream.h> Tenemos que, las funciones más comunes que vamos a usar son de entrada / salida de datos. Y las operaciones más comunes como suma/resta/multiplicación/división.

<math.h> Tenemos que, las funciones más comunes que vamos a usar son de cálculos matemáticos y conversiones. Y posee operaciones como hallar coseno/hallar raíz cuadrada/hallar la potencia/etc.

<stdio.h> Tenemos una biblioteca estándar del lenguaje de programación C, en esencia es el archivo de cabecera que contiene las definiciones de macros, las constantes, las declaraciones de funciones y la definición de tipos usados por varias operaciones estándar de entrada y salida.

: Utilidades relativas a la gestión de memoria, incluyendo asignadores y punteros inteligentes (auto_ptr).

<auto_ptr> Es una clase que conforma la librería memory y permite un fácil manejo de punteros y su destrucción automaticamente.

Biblioteca new: Manejo de memoria dinámica

Librería para obtener proporciones

<system_error> Gestión de errores del sistema

Clases de excepciones

Tipos de datos

Tipo entero : representa números enteros con o sin signo, que estarán compuestos por los dígitos del 0 al 9, pudiendo ser precedidos por los signos + o -.

Algunos ejemplo de datos enteros son: 0, 23, -176, -1, etc.

Para definir variables en C se antepone la palabra reservada del tipo al identificador de la variable. El tipo de datos entero se define en el lenguaje de programación C por la palabra reservada int.

Para definir un tipo de dato en C se escribe lo siguiente:

int nombre_variable = valor;

No es necesario que la variable tenga un valor predeterminado. Se puede definir sin asignarle ningún valor.

Si tenemos varios datos que son del mismo tipo, se pueden definir todas en la misma línea de código escribiendo un único int, separando el nombre de las variables por “,”. Una vez que se haya acabado de definir variables, se cierra la línea de código con “;”

Tipos de datos C++ numéricos enteros

El tipo de dato numérico entero es un subconjunto finito de los números enteros del mundo real. Pueden ser positivos o negativos.

En C++ los tipos de datos numéricos enteros son los siguientes:

Tipo de Dato Descripción (^) bytes típicoNúmero de Rango short Entero corto 2 - 32768 a 32767 int Entero (^4) a - +2147483647^2147483648 long Entero largo (^4) a - +2147483647^2147483648

char Carácter 1 - 128 a 127 Con los tipos enteros pueden utilizarse los calificadores signed y unsigned. Estos calificadores indican si el número tiene signo o no. Si se usan solos, sin indicar el tipo de dato se asume int.

Tipo real: Se emplean para representar números reales (con decimales).

Para definir datos reales se antepone la palabra reservada float al identificador de la variable.

float identificador = valor;

Por ejemplo: float numero1, numero2;

float numero3 = 123.43;

float numero3;

Tipos de datos numéricos reales

El tipo de dato numérico real es un subconjunto finito de los números reales. Pueden ser positivos o negativos.

En C++ los tipos de datos numéricos reales son los siguientes:

Tipo de Dato

Descripción

Número de bytes típico

Rango

float Real (Número en coma flotante) 4 Negativos:Positivos: 3.4E - 3.4E--38 a 3.4E3838 a - 3.4E

double

Real doble(Número en coma flotante de doble precisión)

Positivos: 1.7E-308 a 1.7E Negativos: - 1.7E-308 a - 1.7E long double Real doble largo^10

Positivos: 3.4E-4932 a 1.1E Negativos: - 3.4E-4932 a - 1.1E

Tipo booleano : Un método que es un estándar y que fue introducido en el C99 es el de usar la librería stdbool.h. Esa librería o encabezado define los tipos true y false; que al final son enteros disfrazados representando el 1 y el 0 respectivamente.

Tipo lógico

Los datos de este tipo sólo pueden contener dos valores: true ó false (verdadero ó falso).

Si se muestran como enteros, el valor true toma el valor 1 y false el valor 0.

Tipo de Dato Descripción^

Número de bytes típico Rango bool Dato de tipo lógico 1 0, 1

Tipos de errores

1. Al escribir identificadores, la diferencia entre letras mayúsculas y minúsculas se ignora

main(){ int a= 5 ; printf("%d",A);}

El compilador considera que ay A son dos nombres de variables diferentes, y muestra un mensaje de error.

C piensa que las letras mayúsculas y minúsculas son dos caracteres diferentes.

Tradicionalmente, los nombres simbólicos constantes se escriben en mayúsculas y los nombres de las variables se escriben en minúsculas para aumentar la legibilidad

2. Ignora el tipo de la variable y realiza una operación ilegal

El código se muestra a continuación:

main(){ float a,b; printf("%d",a%b);}

% Es la operación restante para obtener el resto entero de a / b.

Las variables enteras ayb pueden realizar operaciones con el resto, mientras que las variables reales no pueden realizar operaciones con el resto.

**3. Confusas constantes de caracteres con constantes de cadena

  1. char c;
  2. c=”a”;** Aquí, las constantes de caracteres y las constantes de cadena se confunden: una constante de carácter es un solo carácter encerrado en un par de comillas simples, y una constante de cadena es una secuencia de caracteres encerrada en un par de comillas dobles.

C estipula que "" se usa como el final de la cadena, el sistema lo agrega automáticamente, por lo que la cadena "a" en realidad contiene dos caracteres: 'a' y ``, y no está bien asignarla a una variable de caracteres de.

4. Ignora la diferencia entre "=" y "=="

En muchos lenguajes de alto nivel, el símbolo "=" se utiliza como operador relacional "igual a". Si puedes escribir en el programa BASIC if (a= 3 ) then …

Pero en lenguaje C, "=" es el operador de asignación y "==" es el operador relacional. Como: if (a== 3 ) a=b;

El primero es comparar si a es igual a 3, y el segundo significa que si a es igual a 3, asigne el valor de b a a. Debido a los hábitos, los principiantes a menudo cometen tales errores.

5. Olvidé agregar un punto y coma.

El punto y coma es una parte indispensable de la declaración C, y debe haber un punto y coma al final de la declaración.

1. a= 1

**7. Olvidé agregar el operador de dirección "&" al ingresar variables

  1. int a,b;
  2. scanf(“%d%d”,a,b);** Esto es ilegal La función de Scanf es almacenar los valores de a y b de acuerdo con las direcciones de a y b en la memoria. "& A" se refiere a la dirección de a en la memoria. 8. El método de ingreso de datos no cumple con los requisitos.

scanf(“%d%d”,&a,&b); Al ingresar, no puede usar una coma como separador entre dos datos. Por ejemplo, la siguiente entrada es ilegal: 34

Al ingresar datos, use uno o más espacios entre los dos datos, y también puede usar la tecla Intro y la tecla de tabulación.

scanf(“%d,%d”,&a,&b); C estipula: Si hay otros caracteres en la cadena de "control de formato" además de la descripción del formato, se deben ingresar los mismos caracteres que estos caracteres al ingresar datos. La siguiente entrada es legal: 34

En este momento, está mal usar espacios u otros caracteres en lugar de comas. 3 4 34

Otro ejemplo: scanf(“a=%d,b=%d”,&a,&b);

La entrada debería tener el siguiente aspecto: a= 3 ,b= 4

9. El formato de los caracteres de entrada es inconsistente con los requisitos Al ingresar caracteres en el formato "% c", tanto el "carácter de espacio" como el "carácter de escape" se ingresan como caracteres válidos. scanf(“%c%c%c”,&c1,&c2,&c3);

Como la entrada a b c El carácter "a" se envía a c1, el carácter "" se envía a c2 y el carácter "b" se envía a c3, porque% c solo requiere que se lea un carácter y no es necesario usar un espacio como espacio entre dos caracteres.

10. Los tipos de datos de entrada y salida son inconsistentes con los especificadores de formato utilizados

Por ejemplo, a se ha definido como un tipo entero y b se define como un tipo real

**1. a= 3 ;b=4.5;

  1. printf(“%f%d ”,a,b);** No se muestra ningún mensaje de error al compilar, pero el resultado de la ejecución no coincidirá con la intención original. Este tipo de error requiere atención especial. 11. Intente especificar la precisión al ingresar datos scanf(“%7.2f”,&a);

Es ilegal hacerlo, y no se puede especificar la precisión al ingresar datos.

12. Omisión de la declaración de ruptura en la declaración de cambio

Por ejemplo: de acuerdo con la calificación del puntaje de la prueba, imprima el sistema de cien puntos.

**1. switch(grade)

  1. {
  2. case ‘A’:printf(“ 85 ~ 100 ”);
  3. case ‘B’:printf(“ 70 ~ 84 ”);
  4. case ‘C’:printf(“ 60 ~ 69 ”);
  5. case ‘D’:printf(“< 60 ”);**

Se puede ver que cuando el valor de la entrada I es menor o igual a 10, los resultados obtenidos por los dos son los mismos. Cuando I> 10, los dos resultados son diferentes. Porque el bucle while se juzga primero y luego se ejecuta, mientras que el bucle do- while se ejecuta primero y luego se juzga. Para números mayores que 10, el ciclo while no ejecuta el cuerpo del ciclo una vez, mientras que la instrucción do-while ejecuta el cuerpo del ciclo una vez.

**14. Uso indebido de variables al definir matrices

  1. int n;
  2. scanf(“%d”,&n);
  3. int a[n];** Los corchetes después del nombre de la matriz son expresiones constantes, que pueden incluir constantes y constantes simbólicas. Es decir, C no permite la definición dinámica del tamaño de la matriz. **15. Al definir una matriz, confunda el "número de elementos" definido como el valor máximo de subíndice que se puede hacer
  4. main()
  5. {static int a[ 10 ]={ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
  6. printf(“%d”,a[ 10 ]);
  7. }** El lenguaje C estipula: Utilice un [10] al definir, lo que significa que una matriz tiene 10 elementos. El valor del subíndice comienza desde 0, por lo que el elemento de matriz a [10] no existe. 16. Agregue el operador de dirección donde no debe agregarse el operador de dirección scanf(“%s”,&str);

El sistema del compilador del lenguaje C procesa el nombre de la matriz de la siguiente manera: el nombre de la matriz representa la dirección inicial de la matriz, y el elemento de entrada en la función scanf es el nombre de la matriz de caracteres, y el carácter de dirección & no es necesario. Debe cambiarse a:

scanf(“%s”,str);

**17. Al mismo tiempo, se definen los parámetros formales y las variables locales en la función.

  1. int max(x,y)
  2. int x,y,z;
  3. {
  4. z=x>y?x:y;
  5. return(z);
  6. }** Los parámetros formales deben definirse fuera del cuerpo de la función, y las variables locales deben definirse dentro del cuerpo de la función. Debe cambiarse a: **1. int max(x,y)
  7. int x,y;
  8. {
  9. int z;
  10. z=x>y?x:y;
  11. return(z);
  12. }**

puede aparecer una vez. Las instrucciones con etiquetas no son requisitos sintácticos, pero la instrucción switch no tiene sentido sin ellas. La instrucción predeterminada no necesita estar al final; puede aparecer en cualquier parte del cuerpo de la instrucción switch. Una etiqueta case o default solo puede aparecer en una instrucción switch. Un bloque interno de una instrucción switch puede contener definiciones con inicializaciones siempre que se pueda tener acceso a ellas, es decir, siempre que las rutas de ejecución posibles no las omitan.

Las palabras reservadas en C para la condicional switch case son:

Switch

Case

Default

Switch case es una estructura de control empleada en programación, se utiliza para agilizar la toma de decisiones múltiples, trabaja de la misma manera que lo harían sucesivos if, if else o until anidados, así como combinaciones propias de determinados lenguajes de programación.

En principio la funcionalidad de un switch también se puede implementar con múltiples ifs anidados. En el caso de que haya muchas acciones dependientes de

muchos valores iniciales, es recomendable su uso. El switch favorece la legibilidad y rapidez en la programación.

Tipos de Ciclos (for, while, do-while)

Ciclo for

Los ciclos for son lo que se conoce como estructuras de control de flujo cíclicas o simplemente estructuras cíclicas, estos ciclos, como su nombre lo sugiere, nos permiten ejecutar una o varias líneas de código de forma iterativa, conociendo un valor especifico inicial y otro valor final, además nos permiten determinar el tamaño del paso entre cada "giro" o iteración del ciclo.

Sobre sus características se puede mencionar que:

 Siempre se hace uso de una variable (contador) que incrementará su valor automáticamente y ayudará a determinar si se continúa o finaliza el ciclo.  El contador deberá inicializarse con un valor, generalmente 0 ó 1, dependiendo de lo que se esté realizando.  Un ciclo puede contener otro ciclo dentro de sí (a esto se le denomina ciclo anidado). Nunca se debe utilizar el mismo nombre de la variable (contador) en ambos ciclos, pues el programa no podrá determinar cuándo se finaliza el ciclo.

Idea clave: Por cada ciclo, se debe tener un contador con diferente nombre.

Ciclo while

Los ciclos while son también una estructura cíclica, que nos permite ejecutar una o varias líneas de código de manera repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuando se va a dar el valor final que esperamos, los ciclos while, no dependen directamente de valores numéricos, sino de valores booleanos, es decir su ejecución depende del valor de verdad de una condición dada, verdadera o falso, nada más. De este modo los ciclos while, son mucho más efectivos para condiciones indeterminadas, que no conocemos cuando

Programas en C

Programa que realiza la suma de 2 números

Área del círculo