SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
INSTITUTO TECNOLOGICO SUPERIOR
DE GUASAVE
ALGORITMOS YLENGUAJE
PROGRAMACION
ASESOR:
CARLOS ALFREDO CERVANTES
ALUMNO:
RUIZ ALVAREZ ARAN ISAAC
ING. INSDUTRIAL 4-4
FUNCION ESTANDAR
Se denomina una función estándar de C, es decir, una función que está
incluida con el compilador. Para poder usarla dentro de un programa hay que
decir en el mismo como es su forma: eso se hace incluyendo la línea #include
<stdio.h> al principio. De momento dejaremos esto así y lo explicaremos dentro
de más sobre printf.
Para poder trabajar o llamar a una función estándar hay que conocer que
necesita y qué hace. De la función printf hay que saber:
Su nombre cada vez que se coloca printf en un programa le estamos diciendo
al compilador de C que queremos usar esta función.
Lo que se quiere imprimir, que irá entre los paréntesis
En general, la expresión (números o texto) que va entre los paréntesis de una
función se llaman parámetros de la función. Por ejemplo, si en matemáticas se
quiere calcular el valor de
Fórmula
en MathML: Logaritmo de tres equis al cuadrado
, el parámetro de la función logaritmo sería
Fórmula
en MathML: Tres equis al cuadrado
. En lenguaje C, algunas funciones necesitan que le demos datos para poder
hacer su trabajo y otras no. Por ejemplo, printf necesita el texto que hay que
mostrar por pantalla (el cual se entrecomilla), pero para la función principal
main no es obligatorio.
Qué hace y cómo funciona
printf() escribe texto en la pantalla del computador. Los detalles de
funcionamiento aparecen en el manual del compilador que se esté usando. El
manual nos dice, por ejemplo, que si colocamos el código n dentro del
parámetro de printf(), se imprimirá un salto de línea.
Un compilador suele tener decenas de funciones estándar, aunque su número
exacto y los detalles concretos de funcionamiento de las funciones estándar de
C dependen de cada compilador.
Las variables nos permiten almacenar datos. Estos datos pueden ser de
distinto tipo o formato numérico y de distinto tamaño (en bits o bytes). Por
ejemplo, un dato numérico puede almacenarse en una variable de tipo entero o
en otra de coma flotante simple precisión. Recíprocamente, 32 bits (4 bytes) de
la memoria pueden servir para contener un número de coma flotante simple
precisión, o para 4 letras según el convenio ASCII. Es decir, que las variables
fijan una interpretación de los bits de memoria o datos de que disponemos en
el programa.
Las variables pueden ser manipulados usando expresiones de distinto
tipo. Una expresión es un conjunto de operaciones que realizan cálculos con
datos o con los datos contenidos en las variables. Por ejemplo, las expresiones
aritméticas son las más comunes.
2 ENTRADA Y SALIDAD DE DATOS
En un algoritmo, los datos de entrada son los que la computadora va a
procesar. Los datos de salida son datos derivados, es decir, obtenidos a partir
de los datos de entrada. Por esta razón, a los datos de salida se les considera
más significativos que a los datos de entrada. Sin embargo, en un sentido más
filosófico, a los datos de entrada se les considera la materia primade los datos
de salida, considerados estos como la verdadera información.

Entrada
Una instrucción de entrada (o simplemente entrada) consiste en asignar a una
o más variables, uno o más valores recibidos desde el exterior. Normalmente,
los datos son recogidos desde la entrada estándar (el teclado), pero, también
existen otros dispositivos de entrada (el ratón, el escáner,...).
En algoritmos la instruccion de entrada es:
leer( <nombre_de_la_variable_1>,
<nombre_de_la_variable_2>,
...,
<nombre_de_la_variable_n> )
También se puede escribir como:
leer( <lista_de_variables> )
Ejemplo : Partiendo de las variables
cadena: nombre, apellidos
entero: edad
para cada una de ellas se puede recoger un valor desde el
teclado, escribiendo:

leer( nombre )
leer( apellidos )
leer( edad )

Otra posibilidad es

leer( nombre, apellidos, edad )

Salida

Una instrucción de salida (o simplemente salida) consiste en llevar hacia el
exterior los valores obtenidos de la evaluación de una lista de expresiones.
Normalmente, los datos son enviados a la salida estándar (la pantalla), pero,
también existen otros dispositivos de salida (la impresora, el plotter,...).
En pseudocodigo, la sintaxis de una instruccion de salida es:
escribir( <expresión_1>, ..., <expresión_n> )
También se puede escribir como:
escribir( <lista_de_expresiones> )
Ejemplo: Partiendo de las variables

cadena nombre = "Timoteo"
entero edad = 27, hijos = 2

al escribir
escribir ( nombre, " tiene ", edad, " años." )
Escribir ( nombre, " tiene ", hijos, " hijos." )

FUNCIONES DEFINIDAS POR EL USUARIO.
Definición de Funciones
Las funciones definidas por el programador se escriben “fuera” de la función
main. Si se recuerda, uno de los objetivos del uso de las funciones es la
descomposición de problemas complejos y el trabajo en grupo. El siguiente es
un ejemplo de una definición de una función. Se utiliza antes de presentar la
sintaxis formal de modo que nos podamos familiarizar con la terminología:
double square(double numero)
{
double cuadrado;

cuadrado = numero * numero;
return cuadrado;
}

Esta definición de la función square consiste de:
1) El encabezado de la función double square(double numero)
Observe que el encabezado no termina con punto y coma. Las partes del
encabezado de una función son los siguientes.
a) Una lista de los argumentos de la función entre paréntesis:
(double numero)
Si se considera a la función como un programa pequeño, la lista de argumentos
serían equivalentes a los datos que en un programa se introduciría a través de
la instrucción cin. Es importante que observe que en la lista de argumentos se
indican tanto la lista de los argumentos necesarios como el tipo de cada uno de
ellos.

b) El nombre de la función
square
que puede se cualquier identificador válido en C++.

c) El tipo de valor que regresa la función como resultado.
double
2) El cuerpo de la función
{
double cuadrado;
cuadrado = numero * numero;
return cuadrado;
}
El cuerpo de la función se encierra entre llaves y en él se escriben las
sentencias que se necesitan ejecutar para lograr el objetivo de la función.
Contiene al menos una sentencia return. La sentencia return va seguida del
nombre de una variable o de un valor constante.
return cuadrado;
El valor de dicha variable (o el valor de dicha constante) constituye el valor de
regreso de la función. El tipo del valor que regresa la función debe ser
consistente con el tipo del valor de regreso especificado en el encabezado de
la función. Observe que, en este ejemplo, el valor de regreso de la función (tipo
de la variable llamada cuadrado) es double, al igual que el tipo de valor de
regreso especificado en el encabezado.
Llamado de Funciones
El llamado de las funciones definidas por el usuario se realiza de la misma
forma que el llamado a funciones predefinidas. Por ejemplo, si un programador
ha definido la función square de este ejemplo, los siguientes serían llamados
válidos a la función:
double x,y,z;
x=2.0;
y = square(10.0);
z = square(x+y);
Observe que los argumentos que se pasan a la función (10.0 en el primer caso
y x+y en el segundo caso) son del tipo double y coinciden con el tipo definido
para el argumento de la función. Asimismo, a la variable y se le asigna el valor
de regreso de la función square(10.0). Esto es correcto porque el valor de
regreso de la función es de tipo double y la variable y también es de tipo
double. Note que no es necesario que los argumentos con que la función es
llamada se nombren igual que los identificadores usados en el encabezado de
la función.

Paso por valor
El paso de parámetros por valor consiste en copiar el contenido de la variable
que queremos pasar en otra dentro del ámbito local de la subrutina, consiste
pues en copiar el contenido de la memoria del argumento que se quiere pasar
a otra dirección de memoria, correspondiente al argumento dentro del ámbito
de dicha subrutina. Se tendrán dos valores duplicados e independientes, con lo
que la modificación de uno no afecta al otro.
Paso por referencia
El paso de parámetros por referencia consiste en proporcionar a la subrutina a
la que se le quiere pasar el argumento la dirección de memoria del dato. En
este caso se tiene un único valor referenciado (o apuntado) desde dos puntos
diferentes, el programa principal y la subrutina a la que se le pasa el
argumento, por lo que cualquier acción sobre el parámetro se realiza sobre la
misma posición de memoria.
Puntero
Un puntero o apuntador es una variable que da referencia a una región
de memoria; en otras palabras es una variable cuyo valor es una dirección de
memoria. Si se tiene una variable ' p ' de tipo puntero que contiene una
dirección de memoria en la que se encuentra almacenado un valor ' v ' se dice
que ' p ' apunta a ' v '. El programador utilizará punteros para guardar datos en
memoria en muchas ocasiones, de la forma que se describe a continuación.
Trabajar con punteros no implica la manipulación de los datos en sí, sino
manejar las direcciones de memoria en la cuales estos residenEl ejemplo que
sigue es propio del lenguaje C/C++ y no es de aplicación en otros lenguajes de
programación:
struct Elemento // Ejemplo de un nodo de lista doble enlazada
{
int dato;
struct Elemento *siguiente; // El '*' es el operador de indirección, y es el
usado para declarar punteros
struct Elemento *anterior;
};

Para acceder a los atributos como punteros de una estructura que va a ser
tratada como tal, se debe desreferenciar el puntero y acceder a sus miembros
como se haría con una variable normal, o usar directamente el operador: ->. De
tal modo que:
Elemento *elem;
Elemento sig1 = (*elem).siguiente;
Elemento sig2 = elem->siguiente;
/* Se cumple que: sig1==sig2 */
Los paréntesis en este ejemplo son necesarios, pues el operador '*' es el que
menor

prioridad

de

operaciones

tiene

asignada

(por

lo

que

se

haría *(elem.siguiente), lo que es incorrecto, pues trataría acceder a un campo
de una dirección de memoria, y no de una estructura. Esto es un error
sintáctico, en tiempo de compilación).
Otro ejemplo en C++: Se presenta una función que no devuelve ningún valor,
esta función llamada "swap" tiene como parámetros dos punteros del tipo int.
Así, cuando sea llamada desde alguna parte del programa, recibirá las
direcciones de dos variables; luego accederá a dichas variables gracias al
operador de indirección (* precediendo al identificador del puntero) y podrá
intercambiar sus valores residentes.
void swap(int *x, int *y)
{
int temp;
temp = *x; // copia el valor apuntado por x a temp
*x = *y;

// copia el valor apuntado por y en la ubicación del puntero x

*y = temp; // copia el valor de temp en la ubicación apuntada por y
}

Contenu connexe

Tendances

INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++Idalia Tristan
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++yesid19
 
Estructuras básicas para C++
Estructuras básicas para C++Estructuras básicas para C++
Estructuras básicas para C++Bryangio2002
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3karlalopezbello
 
Introducción a C++
Introducción a C++Introducción a C++
Introducción a C++Areli1215
 
Apuntadores
ApuntadoresApuntadores
Apuntadoresluisabn
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++Nana Garces
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++yesid19
 
Entrada y salida de datos en c
Entrada y salida de datos en cEntrada y salida de datos en c
Entrada y salida de datos en cDenisse C
 
Librerias en-lenguaje-c
Librerias en-lenguaje-cLibrerias en-lenguaje-c
Librerias en-lenguaje-cKevin2811
 
ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++GabrielFVilla15
 
Logica taller de tipo de datos
Logica taller de tipo de datosLogica taller de tipo de datos
Logica taller de tipo de datosuanelectromecanica
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++Andy Otañez
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeDunkherz
 
Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++ncrmax
 

Tendances (20)

Funcion printf
Funcion printfFuncion printf
Funcion printf
 
INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 
Estructuras básicas para C++
Estructuras básicas para C++Estructuras básicas para C++
Estructuras básicas para C++
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
 
Introducción a C++
Introducción a C++Introducción a C++
Introducción a C++
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Tutorial C
Tutorial CTutorial C
Tutorial C
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++
 
Algoritmos y programacion en C++
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
 
Entrada y salida de datos en c
Entrada y salida de datos en cEntrada y salida de datos en c
Entrada y salida de datos en c
 
Librerias en-lenguaje-c
Librerias en-lenguaje-cLibrerias en-lenguaje-c
Librerias en-lenguaje-c
 
ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++
 
Logica taller de tipo de datos
Logica taller de tipo de datosLogica taller de tipo de datos
Logica taller de tipo de datos
 
C++ y sus librerias
C++ y sus libreriasC++ y sus librerias
C++ y sus librerias
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
 
Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++
 

Similaire à Algoritmos y lenjuage de programacion

Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacioncharnisch
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguajeyuli02
 
1ra parte elementos basicos del lenguaje
 1ra parte elementos basicos del lenguaje 1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguajeyuli02
 
Unidad1
Unidad1Unidad1
Unidad1JHONNY
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1camnav
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Joaquin1418
 
Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1David
 
Unidad1
Unidad1Unidad1
Unidad1JHONNY
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Facebook
 
Unidad1
Unidad1Unidad1
Unidad1chembe
 
Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1charnisch
 
Elementos Básicos del Lenguaje
Elementos Básicos del LenguajeElementos Básicos del Lenguaje
Elementos Básicos del Lenguajechembe
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuelaroyimar
 
Material de apoyo: Componentes y tipos de Datos PDF
 Material de apoyo: Componentes y tipos de Datos PDF Material de apoyo: Componentes y tipos de Datos PDF
Material de apoyo: Componentes y tipos de Datos PDFLeider Sanchez
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinasmezano09
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinasAngel Perez
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinasmezano09
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Jennybeatriz1
 

Similaire à Algoritmos y lenjuage de programacion (20)

Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacion
 
Escuela
EscuelaEscuela
Escuela
 
Escuela
EscuelaEscuela
Escuela
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
 
1ra parte elementos basicos del lenguaje
 1ra parte elementos basicos del lenguaje 1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
 
Unidad1
Unidad1Unidad1
Unidad1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1
 
Unidad1
Unidad1Unidad1
Unidad1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Unidad1
Unidad1Unidad1
Unidad1
 
Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1
 
Elementos Básicos del Lenguaje
Elementos Básicos del LenguajeElementos Básicos del Lenguaje
Elementos Básicos del Lenguaje
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuela
 
Material de apoyo: Componentes y tipos de Datos PDF
 Material de apoyo: Componentes y tipos de Datos PDF Material de apoyo: Componentes y tipos de Datos PDF
Material de apoyo: Componentes y tipos de Datos PDF
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinas
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinas
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinas
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_
 

Algoritmos y lenjuage de programacion

  • 1. INSTITUTO TECNOLOGICO SUPERIOR DE GUASAVE ALGORITMOS YLENGUAJE PROGRAMACION ASESOR: CARLOS ALFREDO CERVANTES ALUMNO: RUIZ ALVAREZ ARAN ISAAC ING. INSDUTRIAL 4-4
  • 2. FUNCION ESTANDAR Se denomina una función estándar de C, es decir, una función que está incluida con el compilador. Para poder usarla dentro de un programa hay que decir en el mismo como es su forma: eso se hace incluyendo la línea #include <stdio.h> al principio. De momento dejaremos esto así y lo explicaremos dentro de más sobre printf. Para poder trabajar o llamar a una función estándar hay que conocer que necesita y qué hace. De la función printf hay que saber: Su nombre cada vez que se coloca printf en un programa le estamos diciendo al compilador de C que queremos usar esta función. Lo que se quiere imprimir, que irá entre los paréntesis En general, la expresión (números o texto) que va entre los paréntesis de una función se llaman parámetros de la función. Por ejemplo, si en matemáticas se quiere calcular el valor de Fórmula en MathML: Logaritmo de tres equis al cuadrado , el parámetro de la función logaritmo sería Fórmula en MathML: Tres equis al cuadrado . En lenguaje C, algunas funciones necesitan que le demos datos para poder hacer su trabajo y otras no. Por ejemplo, printf necesita el texto que hay que mostrar por pantalla (el cual se entrecomilla), pero para la función principal main no es obligatorio. Qué hace y cómo funciona
  • 3. printf() escribe texto en la pantalla del computador. Los detalles de funcionamiento aparecen en el manual del compilador que se esté usando. El manual nos dice, por ejemplo, que si colocamos el código n dentro del parámetro de printf(), se imprimirá un salto de línea. Un compilador suele tener decenas de funciones estándar, aunque su número exacto y los detalles concretos de funcionamiento de las funciones estándar de C dependen de cada compilador. Las variables nos permiten almacenar datos. Estos datos pueden ser de distinto tipo o formato numérico y de distinto tamaño (en bits o bytes). Por ejemplo, un dato numérico puede almacenarse en una variable de tipo entero o en otra de coma flotante simple precisión. Recíprocamente, 32 bits (4 bytes) de la memoria pueden servir para contener un número de coma flotante simple precisión, o para 4 letras según el convenio ASCII. Es decir, que las variables fijan una interpretación de los bits de memoria o datos de que disponemos en el programa. Las variables pueden ser manipulados usando expresiones de distinto tipo. Una expresión es un conjunto de operaciones que realizan cálculos con datos o con los datos contenidos en las variables. Por ejemplo, las expresiones aritméticas son las más comunes. 2 ENTRADA Y SALIDAD DE DATOS En un algoritmo, los datos de entrada son los que la computadora va a procesar. Los datos de salida son datos derivados, es decir, obtenidos a partir de los datos de entrada. Por esta razón, a los datos de salida se les considera más significativos que a los datos de entrada. Sin embargo, en un sentido más filosófico, a los datos de entrada se les considera la materia primade los datos de salida, considerados estos como la verdadera información. Entrada Una instrucción de entrada (o simplemente entrada) consiste en asignar a una o más variables, uno o más valores recibidos desde el exterior. Normalmente,
  • 4. los datos son recogidos desde la entrada estándar (el teclado), pero, también existen otros dispositivos de entrada (el ratón, el escáner,...). En algoritmos la instruccion de entrada es: leer( <nombre_de_la_variable_1>, <nombre_de_la_variable_2>, ..., <nombre_de_la_variable_n> ) También se puede escribir como: leer( <lista_de_variables> ) Ejemplo : Partiendo de las variables cadena: nombre, apellidos entero: edad para cada una de ellas se puede recoger un valor desde el teclado, escribiendo: leer( nombre ) leer( apellidos ) leer( edad ) Otra posibilidad es leer( nombre, apellidos, edad ) Salida Una instrucción de salida (o simplemente salida) consiste en llevar hacia el exterior los valores obtenidos de la evaluación de una lista de expresiones. Normalmente, los datos son enviados a la salida estándar (la pantalla), pero, también existen otros dispositivos de salida (la impresora, el plotter,...). En pseudocodigo, la sintaxis de una instruccion de salida es:
  • 5. escribir( <expresión_1>, ..., <expresión_n> ) También se puede escribir como: escribir( <lista_de_expresiones> ) Ejemplo: Partiendo de las variables cadena nombre = "Timoteo" entero edad = 27, hijos = 2 al escribir escribir ( nombre, " tiene ", edad, " años." ) Escribir ( nombre, " tiene ", hijos, " hijos." ) FUNCIONES DEFINIDAS POR EL USUARIO. Definición de Funciones Las funciones definidas por el programador se escriben “fuera” de la función main. Si se recuerda, uno de los objetivos del uso de las funciones es la descomposición de problemas complejos y el trabajo en grupo. El siguiente es un ejemplo de una definición de una función. Se utiliza antes de presentar la sintaxis formal de modo que nos podamos familiarizar con la terminología: double square(double numero) { double cuadrado; cuadrado = numero * numero; return cuadrado; } Esta definición de la función square consiste de: 1) El encabezado de la función double square(double numero)
  • 6. Observe que el encabezado no termina con punto y coma. Las partes del encabezado de una función son los siguientes. a) Una lista de los argumentos de la función entre paréntesis: (double numero) Si se considera a la función como un programa pequeño, la lista de argumentos serían equivalentes a los datos que en un programa se introduciría a través de la instrucción cin. Es importante que observe que en la lista de argumentos se indican tanto la lista de los argumentos necesarios como el tipo de cada uno de ellos. b) El nombre de la función square que puede se cualquier identificador válido en C++. c) El tipo de valor que regresa la función como resultado. double 2) El cuerpo de la función { double cuadrado; cuadrado = numero * numero; return cuadrado; } El cuerpo de la función se encierra entre llaves y en él se escriben las sentencias que se necesitan ejecutar para lograr el objetivo de la función. Contiene al menos una sentencia return. La sentencia return va seguida del nombre de una variable o de un valor constante. return cuadrado; El valor de dicha variable (o el valor de dicha constante) constituye el valor de regreso de la función. El tipo del valor que regresa la función debe ser consistente con el tipo del valor de regreso especificado en el encabezado de la función. Observe que, en este ejemplo, el valor de regreso de la función (tipo
  • 7. de la variable llamada cuadrado) es double, al igual que el tipo de valor de regreso especificado en el encabezado. Llamado de Funciones El llamado de las funciones definidas por el usuario se realiza de la misma forma que el llamado a funciones predefinidas. Por ejemplo, si un programador ha definido la función square de este ejemplo, los siguientes serían llamados válidos a la función: double x,y,z; x=2.0; y = square(10.0); z = square(x+y); Observe que los argumentos que se pasan a la función (10.0 en el primer caso y x+y en el segundo caso) son del tipo double y coinciden con el tipo definido para el argumento de la función. Asimismo, a la variable y se le asigna el valor de regreso de la función square(10.0). Esto es correcto porque el valor de regreso de la función es de tipo double y la variable y también es de tipo double. Note que no es necesario que los argumentos con que la función es llamada se nombren igual que los identificadores usados en el encabezado de la función. Paso por valor El paso de parámetros por valor consiste en copiar el contenido de la variable que queremos pasar en otra dentro del ámbito local de la subrutina, consiste pues en copiar el contenido de la memoria del argumento que se quiere pasar a otra dirección de memoria, correspondiente al argumento dentro del ámbito de dicha subrutina. Se tendrán dos valores duplicados e independientes, con lo que la modificación de uno no afecta al otro. Paso por referencia El paso de parámetros por referencia consiste en proporcionar a la subrutina a la que se le quiere pasar el argumento la dirección de memoria del dato. En
  • 8. este caso se tiene un único valor referenciado (o apuntado) desde dos puntos diferentes, el programa principal y la subrutina a la que se le pasa el argumento, por lo que cualquier acción sobre el parámetro se realiza sobre la misma posición de memoria. Puntero Un puntero o apuntador es una variable que da referencia a una región de memoria; en otras palabras es una variable cuyo valor es una dirección de memoria. Si se tiene una variable ' p ' de tipo puntero que contiene una dirección de memoria en la que se encuentra almacenado un valor ' v ' se dice que ' p ' apunta a ' v '. El programador utilizará punteros para guardar datos en memoria en muchas ocasiones, de la forma que se describe a continuación. Trabajar con punteros no implica la manipulación de los datos en sí, sino manejar las direcciones de memoria en la cuales estos residenEl ejemplo que sigue es propio del lenguaje C/C++ y no es de aplicación en otros lenguajes de programación: struct Elemento // Ejemplo de un nodo de lista doble enlazada { int dato; struct Elemento *siguiente; // El '*' es el operador de indirección, y es el usado para declarar punteros struct Elemento *anterior; }; Para acceder a los atributos como punteros de una estructura que va a ser tratada como tal, se debe desreferenciar el puntero y acceder a sus miembros como se haría con una variable normal, o usar directamente el operador: ->. De tal modo que: Elemento *elem; Elemento sig1 = (*elem).siguiente; Elemento sig2 = elem->siguiente; /* Se cumple que: sig1==sig2 */
  • 9. Los paréntesis en este ejemplo son necesarios, pues el operador '*' es el que menor prioridad de operaciones tiene asignada (por lo que se haría *(elem.siguiente), lo que es incorrecto, pues trataría acceder a un campo de una dirección de memoria, y no de una estructura. Esto es un error sintáctico, en tiempo de compilación). Otro ejemplo en C++: Se presenta una función que no devuelve ningún valor, esta función llamada "swap" tiene como parámetros dos punteros del tipo int. Así, cuando sea llamada desde alguna parte del programa, recibirá las direcciones de dos variables; luego accederá a dichas variables gracias al operador de indirección (* precediendo al identificador del puntero) y podrá intercambiar sus valores residentes. void swap(int *x, int *y) { int temp; temp = *x; // copia el valor apuntado por x a temp *x = *y; // copia el valor apuntado por y en la ubicación del puntero x *y = temp; // copia el valor de temp en la ubicación apuntada por y }