ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Problemas de programacion basica

David Alejandro Barboza AlanisApuntes26 de Mayo de 2017

3.357 Palabras (14 Páginas)470 Visitas

Página 1 de 14

Ejercicios para práctica de la unidad 4 y 5

  1. Se leerán desde el teclado 20 valores numéricos, y se almacenarán en un arreglo unidimensional, se desea conocer:

-Cuantos de los valores almacenados en el arreglo son múltiplos de 3.

-La suma de los valores almacenados en el arreglo que son negativos.

*Hacer el programa con la técnica modular (dividir en funciones).[pic 1]

2. Se leerán desde el teclado 30 valores numéricos y se almacenarán en un arreglo unidimensional, se desea conocer:

-El valor promedio de los valores almacenados en el arreglo

*Hacer el programa usando la técnica modular.[pic 2]


[pic 3]                  [pic 4]                  [pic 5]

Instituto Tecnológico de Nuevo León.

Programación Básica.

Problemas Unidad 4

Ing. Mecatrónica

Alumno: David Alejandro Barboza Alanis

Maestro: Fidel García Ochoa

No. Control: 16480563


[pic 6]                  [pic 7]                  [pic 8]

Instituto Tecnológico de Nuevo León.

Programación Básica.

Unidad 5

Ing. Mecatrónica

Alumno: David Alejandro Barboza Alanis

Maestro: Fidel García Ochoa

No. Control: 16480563

¿Qué son las funciones?

En cualquier lenguaje de programación las funciones y/o procedimientos son fragmentos de código independientes con nombre y entidad propia, y se agrupan en módulos de programación, que no son más que archivos de código independientes que se compilan por separado y luego se enlazan entre sí para formar el programa completo. La forma de definir dichos módulos con sus respectivas funciones difiere en cada lenguaje de programación. En el caso de C debemos de tener en cuenta los siguientes puntos:

• Sólo existen funciones. No se puede escribir ninguna línea de código ejecutable (Excluyendo declaraciones y definiciones) fuera del cuerpo de una función. No se dispone de procedimientos; para emular la funcionalidad de procedimientos se utilizan funciones que devuelven como valor el tipo de dato void, esto es, no devuelven nada.

• No se puede definir una función dentro de otra función; todas las funciones de un módulo deben de estar en el mismo nivel.

• Siempre debe de existir la función principal main dentro del código del programa; esta función es la que permite arrancar la ejecución del programa.

[pic 9]

La sintaxis de definición de una función es la siguiente:

[pic 10]

El tipo retorno es el tipo de dato correspondiente con el valor devuelto por la función. Puede ser cualquiera de los del C: char, int, float, etcétera. Por ejemplo, para la función pow(), una función incluida en las librerías del compilador que permite calcular potencias, el valor devuelto es el primer argumento elevado al segundo (argumento es lo mismo que parámetro) y es de tipo double. Si una función no devuelve ningún valor, se debe poner como tipo de retorno void, que significa “nulo” o “vacío”. Si no se indica ningún tipo de retorno el compilador supone que es int; no es una buena práctica de programación confiar en el tipo de retorno por defecto y no indicarlo explícitamente ya que es propenso a fallos y complica la legibilidad del programa.

El nombre de la función puede ser cualquiera que elija el programador, siguiendo las mismas reglas que los nombres de las variables. Este nombre es el que se utilizará cuando se la llame desde la función principal (main) o desde otra función.

Los parámetros o argumentos son los valores sobre los que actúa la función: por ejemplo, el primer argumento de pow() es la base y el segundo el exponente. La lista de parámetros es de la forma.

[pic 11]

Hay que especificar de forma separada el tipo de cada parámetro, aunque haya varios del mismo tipo. Si no se pone el tipo de un parámetro, el compilador supone que es int. Si una función no utiliza parámetros, se pone dentro de los paréntesis la palabra void. Si no se pone nada entre los paréntesis, la función no tiene parámetros, pero sin embargo el compilador no avisa con un error si se llama a la función pasándole algún parámetro.

Las variables definidas dentro del cuerpo de una función se denominan variables locales. Son variables propias de la función y no existen para el resto del programa. Se declaran, inicializan y emplean igual que cualquier otra variable. Las variables definidas fuera del cuerpo de una función podrán ser accedidas por cualquier función del programa.

Todos los componentes que forman parte de la definición de una función, salvo el nombre, los paréntesis y las llaves, son opcionales; de forma que la siguiente función es válida:

[pic 12]

A continuación, mostraremos un ejemplo de programa en el cual se emplea una función para multiplicar dos números reales:

[pic 13]

La función rand() genera números enteros aleatorios entre 0 y la constante RAND_MAX. La función srand () se utiliza para inicializar la rutina de generación de números aleatorios con una semilla. Esta semilla debe ser un número entero sin signo. Para generarlo empleamos la función time (NULL), que devuelve el instante actual de tiempo en un formato que es opaco para el programador. Para este problema no nos importa que el instante de tiempo sea opaco ya que lo único que deseamos es un entero positivo que varíe de una ejecución a otra del programa. Si no se proporcionase una semilla diferente en cada ejecución del programa siempre obtendríamos los mismos números "aleatorios". Estas funciones están definidas en stdlib.h. y en time.h.

Cuando se ejecuta la línea resultado= multiplicar (A, B) se ejecutan los cálculos indicados en la función y al final, mediante la sentencia return, se devuelve un valor, que es asignado a la variable resultado del programa principal. Como se puede ver, el nombre de los parámetros o argumentos de la función no tiene ninguna relación con los de las variables que recibe (A y B); simplemente el valor de la primera variable (A) se introduce en el primer parámetro (num1) y el de la segunda en el segundo (num2).

Modificadores de almacenamiento de las variables

Además de por su tipo de dato, las variables se caracterizan por su tipo de almacenamiento. Éste viene dado por la permanencia de la variable y su ámbito dentro del programa. Existen cuatro tipos básicos de almacenamiento: automático (auto), externo (extern), estático (static) y registro (register). Veamos en más detalle cada uno de ellos:

Register

Se pueden almacenar algunas variables en los registros del procesador mediante la inclusión de register en su definición: register int a; Como el número de registros es limitado, sólo un cierto número de variables pueden ser almacenadas de esta forma. Por ello, no tenemos garantías de que una variable definida como register sea realmente almacenada en un registro del procesador. Sólo se pueden almacenar en registros variables definidas dentro de funciones y no es posible acceder a la dirección de memoria de las variables de tipo registro a partir del operador dirección. Para algunos programas el tiempo de ejecución se puede reducir considerablemente si ciertos valores pueden almacenarse dentro de los registros. Esto se debe a que se ahorran una gran cantidad de accesos al bus de sistema para intercambiar datos entre la CPU y la memoria. El número de variables que se pueden almacenar en los registros depende tanto del compilador de C como de la máquina concreta, aunque lo normal es tener dos o tres variables registro por función.

Auto

Las variables automáticas se declaran siempre dentro de una función y su ámbito se restringe a dicha función, esto es, no pueden ser accedidas desde ninguna otra función. Las variables automáticas definidas en funciones diferentes serán independientes las unas de las otras, aunque compartan el nombre. Todas las variables definidas dentro de una función por defecto se interpretan como automáticas, a no ser que se indique lo contrario (esto es, no es necesario definir algo como auto int a;). Si una variable automática se inicializa con un valor la inicialización se realizará cada vez que se ejecute el cuerpo de la función, y el valor de la variable en una ejecución anterior no se conservará en la siguiente ejecución. Si una variable automática no es inicializa de ninguna manera su valor es impredecible.

Extern

Las variables externas son aquellas que se definen fuera del cuerpo de las funciones. Son accesibles desde la línea que se definen hasta el fin del archivo; con frecuencia también son accesibles por todos los módulos del programa, lo que les vale el nombre de "variables globales". Éstas variables, si son de tipo numérico, son inicializadas a 0 de un modo automático por el compilador.

Este tipo de variable permite transferir información entre distintas funciones sin necesidad de usar argumentos, ya que diversas funciones pueden acceder a un mismo dato. Sin embargo, esto aumenta las dependencias de las funciones entre sí y, en muchas ocasiones, limita su reutilización en otros problemas. Al trabajar con variables externas hay que distinguir entre definiciones de variables externas y declaraciones de variables externas. Para definir una variable externa no es necesario emplear el especificador de tipo de almacenamiento "extern" (de hecho, muchos compiladores de C prohíben su uso). Si la función requiere una variable que ha sido definida antes en el programa la función podrá acceder libremente a ella. Si la variable se define después o en un módulo distinto para qué la función pueda acceder a la variable deberá realizar una declaración de dicha variable. La declaración comienza con el especificador del tipo de almacenamiento y el nombre y tipo de datos de la variable tienen que coincidir con la correspondiente definición de variable externa que aparece fuera de la función. Así, el código siguiente no compila correctamente porque la variable i no es reconocida en la función main:

...

Descargar como (para miembros actualizados) txt (22 Kb) pdf (602 Kb) docx (478 Kb)
Leer 13 páginas más »
Disponible sólo en Clubensayos.com