INSTITUTO TECNOLOGICO DE CIUDAD
MADERO
ALUMNO: GUTIERREZ HERNANDEZ URIEL
NUMERO DE CONTROL: 20070665
MATERIA: ALGORITMOS Y
PROGRAMACION
TAREA: RESUMEN
PROFESOR: CHUEY RUBIO MARTHA LAURA
INGENIERIA MECANICA
HORA: 15:00 – 16:00
TEMA IV
4.1 Investigar la definición de función.
En programación, una función es una sección de un programa que
calcula un valor de manera independiente al resto del programa.
Una función tiene tres componentes importantes:
Los parámetros, que son los valores que recibe la función como
entrada;
El código de la función, que son las operaciones que hace la
función; y
El resultado (o valor de retorno), que es el valor final que entrega
la función.
4.2 Investigar funciones de biblioteca.
Una función de biblioteca es un subproceso preprogramado,
identificado con un nombre de una letra y de uno a cinco caracteres
más, seguido de argumento(s) entre paréntesis que asocia a él o a los
valores definidos por argumento(s), un valor único en respuesta al
llamado de la función.
Todo lenguaje de programación cuenta con una cantidad básica de
funciones conocidas como de biblioteca, que ayudan al programador
en sus labores y evitan definirlas con subprocesos adicionales.
Como ejemplo considérese las siguientes funciones:
Funciones básicas más usuales:
Valor absoluto de X, ABS(X)
Logaritmo natural de X, LOG(X)
Seno trigonométrico de X (en radianes), SIN(X)
Coseno trigonométrico de X (en radianes), COS(X)
Función eX, EXP(X)
Raíz cuadrada de X, SQR(X)
Tangente de X (en radianes), TAN(X)
Arco tangente de X, ATN(X)
Librerías de uso más común de C++ y que forman parte de las
librerías estandar de este lenguaje.
fstream: Flujos hacia/desde ficheros. Permite la manipulación de
archivos desde el programar, tanto leer como escribir en ellos.
iosfwd: Contiene declaraciones adelantadas de todas las
plantillas de flujos y sus typedefs estándar. Por ejemplo ostream.
iostream: Parte del a STL que contiene los algoritmos estándar,
es quizá la más usada e importante (aunque no indispensable).
La biblioteca list: Parte de la STL relativa a contenedores tipo list;
listas doblemente enlazadas
math: Contiene los prototipos de las funciones y otras
definiciones para el uso y manipulación de funciones
matemáticas.
memory: 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
numeric: Parte de la librería numérica de la STL relativa a
operaciones numéricas.
ostream: Algoritmos estándar para los flujos de salida.
queue: Parte de la STL relativa a contenedores tipo queue (colas
de objetos).
Librería stdio: Contiene los prototipos de las funciones, macros, y
tipos para manipular datos de entrada y salida.
Librería stdlib: Contiene los prototipos de las funciones, macros,
y tipos para utilidades de uso general.
string: Parte de la STL relativa a contenedores tipo string; una
generalización de las cadenas alfanuméricas para albergar
cadenas de objetos. Muy útil para el fácil uso de las cadenas de
caracteres, pues elimina muchas de las dificultades que generan
los char
typeinfo: Mecanismo de identificación de tipos en tiempo de
ejecución
vector: Parte de la STL relativa a los contenedores tipo vector;
una generalización de las matrices unidimensionales C/C++
forward_list: Esta librería es útil para implementar con gran
facilidad listas enlazadas simples.
list: Permite implementar listas doblemente enlazadas (listas
enlazadas dobles) fácilmente.
iterator: Proporciona un conjunto de clases para iterar
elementos.
regex: Proporciona fácil acceso al uso de expresiones regulares
para la comparación de patrones.
thread: Útil para trabajar programación multihilos y crear
múltiples hilos en nuestra aplicación.
time: Útil para obtener marcas de tiempo durante ejecución. Se
usa con frecuencia para conocer el tiempo exacto durante un
programa.
4.3 Cómo opera (trabaja) una función, muestre con un
ejemplo.
Una función es un bloque de código que realiza alguna operación. Una
función puede definir opcionalmente parámetros de entrada que
permiten a los llamadores pasar argumentos a la función.
Una declaración de función mínima está formada por el tipo de valor
devuelto, el nombre de función y la lista de parámetros (que puede
estar vacía), junto con palabras clave opcionales que proporcionan
instrucciones adicionales para el compilador. El ejemplo siguiente es
una declaración de función:
int sum(int a, int b);
Una definición de función está formada por la declaración y el cuerpo
de la función, entre llaves, que contiene declaraciones de variables,
instrucciones y expresiones.
En el ejemplo siguiente se muestra una definición de función completa:
int foo(int i, std::string s)
{
int value {i};
MyClass mc;
if(strcmp(s, "default") != 0)
{
value = mc.do_something(i);
}
return value;
}
TEMA VI:
6.1 Qué es un apuntador y como se representa.
Un apuntador es una variable que contiene la dirección de memoria de
otra variable. Los apuntadores se utilizan para dar claridad y
simplicidad a las operaciones a nivel de memoria.
Básicamente existen dos operadores para manipular los punteros,
estos son el * y el &. El operador * es aplicado a un puntero y nos da el
valor de la variable referencia. El operador & se aplica a variables
comunes, nos da la dirección de memoria de variable a la que se
aplica.
Un puntero es declarado en C del siguiente modo:
tipoDeDato *nombreDelPuntero;
6.2 Precedencia de operadores de apuntadores.
La precedencia de un operador indica qué tan "estrechamente" se
unen dos expresiones juntas. La precedencia de operadores
determina el orden en el cual los operadores son evaluados. Los
operadores con mayor precedencia son evaluados primero.
6.3 Cómo opera (trabajan) los apuntadores.
Los apuntadores, son clave en el manejo de referencias a variables
alocadas en la memoria principal durante la ejecución de tu programa.
Para esto, recordemos que un puntero es una variable cuyo contenido
es la dirección de memoria de otra variable.
Para declarar un apuntador se debe definir el tipo de dato y el
nombre de la variable apuntador precedida de un asterisco (*).
Una variable de tipo apuntador debe tener el mismo tipo de dato de
la variable a la que va a apuntar:
TipoDeDato *apuntador, variable;
Para asignarle un valor al apuntador, se debe acceder a la
localidad de memoria de la variable a través de un ampersand (&):
apuntador = &variable;
Los apuntadores solo deben apuntar a variables del mismo tipo de
dato con el que fueron declarados.
6.4 Presente un ejemplo.
// Programa que demuestra el uso basico de los apuntadores
#include “stdio.h”
#include “conio.h”
void main ( )
int var=1, *apun;
apun = &var; // Inicialización del apuntador
printf(“\n Acceso directo, var= %d”, var);
printf(“\n Acceso indirecto, var= %d”, *apun);
// Se despliega la dirección de la variable de dos maneras
printf(“\n La dirección de var= %d”, &var);
printf(“\n La dirección de var= %d”, apun);
getch( );
}
Ejemplo de apuntadores
char *apuntador = NULL; //Declaramos un puntero
//Es recomendable inicializar un puntero en null, para detectar
errores fácilmente
char letra; //Declaramos una variable primitiva
apuntador = &letra; //Asignamos al apuntador la dirección de
memoria de la variable primitiva
*apuntador = 'x'; //Modificamos la variable a través del apuntador
cout << letra; //Muestra x por pantalla
TEMA VII:
7.1 Fundamentos de cadenas y cadena de caracteres
Los caracteres son bloques de construcción fundamentales para los
programas fuente. Un programa puede contener constantes de
carácter. Una constante de carácter es un valor int representado por
un carácter entre comillas sencillas.
Ejemplo:
'z' representa el valor entero de z, y '\n' representa el valor entero de
una nueva línea.
Una cadena es un conjunto de caracteres tratados como una sola
unidad. Una cadena puede incluir letras, dígitos y varios caracteres
especiales como: +, -, *, y $.
Una cadena es un arreglo de caracteres, los cuales terminan con el
carácter nulo ('\0').
Las cadenas son como arreglos, debido a que un arreglo también es
un apuntador al primer elemento.
Un arreglo de caracteres o una variable de tipo char * puede
inicializarse con una cadena en la definición.
Las definiciones
char color[] = “azul”;
const char *ptrColor = “azul”;
7.2 Funciones de manejo de cadenas y de cadenas de
caracteres.
Aunque C no incorpora en su definición operadores para el manejo de
cadenas de caracteres, todo compilador de C proporciona una librera
estándar (string.h) con funciones para facilitar su utilización. Destacar
algunas de ellas:
strcpy: La función strcpy se encuentra en la biblioteca <string.h> y se
utiliza para copiar una cadena de caracteres (fuente) en el lugar que
ocupaba otra (destino). Esta copia es destructiva, o sea, que todos los
caracteres que estaban en la cadena destino desaparecen, aunque la
cadena destino fuera más larga que la cadena fuente .La cadena
destino se pone como primer argumento de la función y la cadena
fuente como segundo.
strcat: la función strcpy es desctructiva, pero hay otra función en la
librería <string.h> que copia una cadena (fuente) en otra (destino) sin
destruir ésta, es decir, que copia una cadena detrás de la otra esta
función es conocida como strcat.
strlen: esta función devuelve el total (entero) de caracteres que
conforman una cadena (excluyendo el caracter nulo \0).
strcmp: strcmp (abreviatura de ((string comparison))). La función
strcmp recibe dos cadenas, a y b, devuelve un entero. El entero que
resulta de efectuar la llamada strcmp(a, b) codifica el resultado de la
comparación:
es menor que cero si la cadena a es menor que b,
es 0 si la cadena a es igual que b, y
es mayor que cero si la cadena a es mayor que b.
Naturalmente, menor significa que va delante en orden
alfabético, y mayor que va detrás.
Otras Funciones útiles para operar cadenas de caracteres.
No sólo string.h contiene funciones útiles para el tratamiento de
cadenas. En ctype.h se encuentran unas funciones que permiten
hacer cómodamente preguntas acerca de los caracteres, como si son
mayúsculas, minúsculas, dígitos, etc:
isalnum(caracter): devuelve cierto (un entero cualquiera distinto de
cero) si caracter es una letra o dígito, y falso (el valor entero 0) en
caso contrario.
isalpha(caracter): devuelve cierto si caracter es una letra, y falso
en caso contrario.
isblank(caracter): devuelve cierto si caracter es un espacio en
blanco o un tabulador.
isdigit(caracter) devuelve cierto si caracter es un digito, y falso en
caso contrario.
isspace(caracter): devuelve cierto si caracter es un espacio en
blanco, un salto de línea, un retorno de carro, un tabulador, etc., y
falso en caso contrario.
islower(caracter): devuelve cierto si caracter es una letra
minúscula, y falso en caso contrario.
isupper(caracter): devuelve cierto si caracter es una letra
mayúscula, y falso en caso contrario.
toupper(caracter): devuelve la mayúscula asociada a caracter, si
la tiene; si no, devuelve el mismo caracter.
tolower(caracter): devuelve la minúscula asociada a caracter, si la
tiene; si no, devuelve el mismo caracter.
TEMA VIII:
8.1 Definición de estructura.
Las estructuras son colecciones de variables relacionadas bajo un
nombre. Las estructuras pueden contener variables de muchos tipos
diferentes de datos - a diferencia de los arreglos que contienen
únicamente elementos de un mismo tipo de datos.
Las estructuras son tipos de datos derivados están construidas
utilizando objetos de otros tipos. Considere la siguiente definición de
estructura: struct ejemplo
char c;
int i;};
8.2 Cómo se inicializa un vector.
La única forma de inicializar el vector, o mejor dicho, darle valores a
cada una de sus casillas, es hacerlo uno por uno, es decir darle un
valor a la casilla cero a la uno y a la 2 (para un vector de tamaño 3).
Por defecto, al declarar un vector sin ser inicializado, cada una de las
casillas de este vector toma como valor el valor por defecto del tipo de
variable, para el caso de los enteros (int) es -858993460. Así entonces
para asignar valores a cada casilla lo hacemos así:
int vector2[3];
vector2[0] = 1;
vector2[1] = 3;
vector2[2] = 10;
8.3 Cómo se emplea (utilización) una estructura con
funciones.
La estructura de una función en C++ es la siguiente:
tipo_retorno nombreFuncion (ListaParametros)
{
//Cuerpo de la función
return expresion;
}
tipo_retorno tipo de valor devuelto por la función o la palabra
void si la función no devuelve nada.
nombreFuncion nombre con el cual se identifica la función (debe
ser uno aceptado por C++).
ListaParametros lista de los parámetros que toma
la función separados por comas.
expresion valor que devuelve la función.
EJEMPLO:
int i = 0;
int longitud = 99; // longitud del vector Ej. 99
int V[longitud];
while(i < longitud) //Ej. con While
{
//Se realiza alguna operación con el vector en la i-ésima
posición
f( V[i] );
//Se aumenta el índice para la siguiente etapa
i= i+1; // También podría escribirse como i++; o i+= 1;
}