#include <stdio.h> /* Factorial de un número - versión 1- */



Documentos relacionados
Ejercicios Tema 6. Funciones

Vectores. 27/05/05 Programación Digital I 1

Informática FACULTAD DE FÍSICAS

PRÁCTICA 1: INTRODUCCIÓN A LA ALGORÍTMICA BOLETIN DE PROBLEMAS RESUELTOS. (Curso 03-04)

Se guardan en archivos con extencion c y los cabezales con extension h

Elabore un programa que permita el ingreso de un número calcular el cubo

Informática I. While & do While

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

Introducción al tipo de dato ARRAY

OBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos.

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices

Titulo: Suma de N primeros números

Bloque 4. La descomposición funcional y el diseño descendente

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Programación. Ejercicios Tema 4 Estructuras de Control Repetitivas

Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria.

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

Examen Principios de Programación Febrero 2012

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

Tema 5 Sentencias de control de flujo. Fundamentos de Informática

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */

CI 2125, Computación I

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

LENGUAJE. Tema 1 - Introducción

Tema 9. Vectores y Matrices

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Preliminares. Tipos de variables y Expresiones

Tema: Arreglos de Objetos en C++.

Programación. Ejercicios Tema 5. Funciones

El lenguaje C. 1. Más sobre Instrucciones de control

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones

Para dudas, comentarios escribe a: C BASICO

Introducción al lenguaje C

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Hoja de problemas Estructuras de Control

Curso 0 de Informática

Estructuras de repetición hacer-mientras y repita hasta

Clases y Objetos. Informática II Ingeniería Electrónica

Practicas de Programación Estructurada. Clave: 12125

Arrays y Cadenas en C

El lenguaje de Programación C. Fernando J. Pereda

Actividades de Divulgación del Centro Atómico Bariloche. Qué hay detrás de un programa de computadora? Daniela Arnica Pablo E. Argañaras.

Ejercicios aplicando estructuras de asignación.

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Estructuras de repetición

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Lenguaje C Bucles, Condicionales, operadores y Algoritmos.

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO)

Introducción a los Computadores Arreglos en C

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Procesadores de lenguaje Tema 5 Comprobación de tipos

Examen de Fundamentos de la Programación (Modelo 1)

EJEMPLOS DE PROGRAMACIÓN DE FUNCIONES EN C: Página 1 de 5

Codificación en C. Como pasar de Pseudocódigo a C (con pequeños trucos de C++)

Tema 2: La clase string

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

11. Algunas clases estándar de Java (II)

ESTRUCTURA DE DATOS: ARREGLOS

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

SESIÓN DE EJERCICIOS E4

TécniquesInformàtiques PRÀCTICA 6 (2 Sessions) Curs

Estructuras de Repetición Repita Mientras

1. Que rellene un array con los 100 primeros números enteros y los muestre en pantalla en orden ascendente.

Funciones y paso de parámetros

FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

Objetivos. El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C.

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

1. Cuestiones. Ejercicios resueltos de C. Diego Rodríguez-Losada 1. //a) #include <stdio.h> main( ) { int x = 0, y = 0; //b) #include <stdio.

Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan problemas de tipo numérico.

SESIÓN DE EJERCICIOS E3

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Presentación. Programación I. Conceptos Avanzados de Programación. :: Prof. Yeniffer Peña

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Introducción a la programación orientada a objetos

Ejercicios del tema 7: Clases y objetos

Prof. Dr. Paul Bustamante

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv

Tema 4: Estructuras de Control Estructura y Contenidos

Funciones en Lenguaje C.

Prof. Dr. Paul Bustamante

Examen Septiembre Curso Programación en C++ Pág. 1

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Prof. Dr. Paul Bustamante

Diseño de algoritmos.

Formato para Prácticas de Laboratorio

Transcripción:

Ejemplo 1: Programa que calcula el factorial de 'n' números introducidos desde teclado. Primera versión: /* Factorial de un número - versión 1- */ long int factorial (int x) /*definición de función*/ int i; long int fac = 1; for (i=2; i<=x; i=i+1) fac=fac*i; return (fac); int a; do printf ("\n Introduce el numero "); scanf ("%d", &a); if (a>0) printf ("El factorial es %ld", factorial (a)); while (a > 0); -1-

Segunda versión: void factorial (int x) /* definición de función */ int i; long int fac = 1; for (i=2; i<=x; i=i+1) fac=fac*i; printf ("El factorial de %d es %ld", x, fac); int a; do printf ("\n Introduce el número "); scanf ("%d", &a); if (a>0) factorial (a); while (a > 0); -2-

Ejemplo 2: Programa que calcula el máximo de 3 números enteros. Primera versión: /* Máximo de 3 números */ int maximo (int x, int y) /* definición de función */ if (x > y) return x; else return y; int a,b,c,res; printf ("Introduce los 3 números "); scanf ("%d %d %d", &a, &b, &c); res = maximo (a,b); printf ("El máximo es %d", maximo(res,c)); -3-

Segunda versión: /* Maximo de 3 números */ int maximo (int x, int y) /* definición de función */ int max; if (x > y) max=x; else max=y; return (max); int a,b,c; printf ("Introduce los 3 números "); scanf ("%d %d %d", &a, &b, &c); printf ("El máximo es %d ", maximo (maximo(a,b), c)); -4-

Ejemplo 3. Programa que convierte un carácter minúscula a mayúscula. char minus_mayus (char c2) /* definición de función */ char cf; if (c2 >= 'a' && c2 <= 'z') cf= 'A'+c2-'a'; else cf=c2; return (cf); char c1; printf ("Introduce carácter "); scanf ("%c",&c1); printf ("El carácter mayúscula es %c", minus_mayus (c1)); -5-

Ejemplo 4. Programa que calcula los múltiplos de 3,4,5,6 y 7 que hay entre 1 y 100. void multiplos (int a) /* definición de función */ int i; for (i=a*2; i<=100; i=i+a) printf (" %d", i); int i=3; while (i <= 7) printf ("\n Múltiplos del %d :", i); multiplos (i); i=i +1; -6-

Ejemplo 5: void modificar (int a) /* definición de función */ a=a *3; printf ("\n Valor desde la función %d", a); main () int a=2; printf (" \nvalor antes de llamar a la función %d", a); modificar (a); printf ("\n Valor después de llamar a la función %d", a); Salida del programa: Valor antes de llamar a la función 2 Valor desde la función 6 Valor después de llamar a la función 2-7-

Ejemplo 6: int func (int x) /* definición de función */ int y; y=x*x; return (y); int a, i; for (i=1;i<=5;i=i+1) a= func (i); printf ("%d ", a); -8-

Ejemplo 7 #include <math.h> int func (int x) /* definición de función */ int i; i=pow (x,2); return (i); int a, i; for (i=1;i<=5;i=i+1) a= i*i+func (i); printf ("%d ", a); En el ejemplo 7, tanto la función 'main' como 'func' tienen declaradas dos variables locales con el mismo nombre 'i'. Ambas variables son independientes, y no interfieren entre sí. -9-

Ejemplo 8: int a= 3; /* variable global */ int func (int x) /* definición de función */ a=a+x; return (a); int cont; for (cont=1;cont<=5;cont=cont+1) a= func (cont); printf ("%d ", a); La salida del programa 8 será: a= 3+1= 4 a= 4+2=6 a= 6+3=9 a= 9+4=13 a= 13+5= 18-10-

Ejemplo 9: #define N 25 int vector [N]; void lectura () int i; for (i=1; i<=n; i++) scanf ("%d", &vector[i]); main () lectura (); -11-

Ejemplo 10: #define N 25 #define M 50 void lectura (int A [], dim) int i; for (i=0; i<dim; i++) scanf ("%d", &A[i]); main () int V1[N], V2[M]; lectura (V1, N); lectura (V2, M); -12-

5.6.- EJEMPLOS DE UTILIZACION DE FUNCIONES. Ejemplo 11: int a= 100, b=200; int func1 (int x) /* definición de función */ if (x < 100) return (a+x); else return b; int func2 (int x) int prod=1; prod=prod*x; return (prod); int cont,c; for (cont=1;cont<=5;cont++) c=func2 (cont); printf ("%d ", func1 (c)); Ejemplo 12: -13-

int a= 100, b=200; int func1 (int x) /* definición de función */ int c; c=func2 (x); if (c < 100) return (a+c); else return b; int func2 (int x) int prod=1; prod=prod*x; return (prod); int cont; for (cont=1;cont<=5;cont++) printf ("%d ", func1 (cont)); -14-

Ejemplo 13: Declaración por adelantado. int a= 100, b=200; int cont; float func1 (); /*declaración por adelantado de func1*/ for (cont=1;cont<=5;cont++) printf ("%f ", func1 (cont)); float func1 (int x) /* definición de función */ char c; char func2 (); /*declaración por adelantado de func2 */ c=func2 (x); if (c < 100) return c*0.01; else return c*0.1; char func2 (int x) /* definición de función */ return x; Ejemplo 14: -15-

int a= 0, b=1; int func1 (int a) /* definición de función */ b= func2 (a+1) +1; return b; int func2 (int a) /* definición de función */ return (b+a); int cont; for (cont=1;cont<=5;cont++) b= b+ func1 (a+1) + 1; printf ("%d ",b); -16-

Ejemplo 15: int a= 0, b=1; int func1 (int a) /* definición de función */ int b; b= func2 (a+1) +1; return b; int func2 (int a) /* definición de función */ return (b+a); int cont; for (cont=1;cont<=5;cont++) b= b+ func1 (a+1) + 1; printf ("%d ",b); -17-

5.7.- DISEÑO MODULAR CON FUNCIONES. Ejemplo 16: Diseña un algoritmo que devuelva la suma de todos los números primos que hay entre 1 y 100. int primo (int x) int D; if (x==1) return 1; else D=2; while (x % D!= 0) D=D+1; if (D==x) return 1; else return 0; main () int suma=0, i; for (i=1; i<=100; i++) if (primo(i)) suma=suma+1; printf ("El número de números primos es %d", suma); Ejemplo 17: Hacer un programa en C que lea un array de números enteros y posteriormente modifique el array sumándole una unidad a cada elemento. -18-

#define n 5 void leervector (int A []) int i; for (i=0; i<n; i++) printf ("\n Introduce un número: "); scanf ("%d", &A[i]); void modifvector (int B []) int i; for (i=0; i<n; i++) B[i]++; void escribevector (int C []) int i; for (i=0; i<n; i++) printf ("\n%d", C[i]); main () int V[n]; leervector (V); modifvector (V); escribevector (V); Ejemplo 18: Tenemos un conjunto de 100 alumnos y para cada uno de ellos las calificaciones correspondientes a 7 asignaturas (numeradas del 1 al 7). Diseñar un algoritmo que imprima al final la nota media del curso de todos los alumnos. -19-

#define N_ALU 100 #define N_ASIG 7 void inicializa_vector (float A[]) int i; for (i=0; i<n_alu; i++) A[i]=0; void escribe_valores (float A[]) int i; for (i=0; i<n_alu; i++) printf ("\nla nota del alumno %d es %g", i,a[i]/n_asig); main () float notas[n_alu], calificacion; int i,j; inicializa_vector (notas); for (i=0; i<n_alu; i++) for (j=1; j<=n_asig; j++) printf ("\n Introduce la nota del alumno %d ", i); scanf ("%f", &calificacion); notas[i]=notas[i]+calificacion; escribe_valores (notas); Ejemplo 19: Hacer un programa en C que sume dos matrices de números. #define n 3-20-

void leermatriz (int matriz[][n]) /* lee matriz de 3*3 */ int i,j; for (i=0; i<n; i++) for (j=0; j<n; j++) printf ("\ndame el valor del elemento m (%d %d) ", i,j); scanf ("%d", &matriz[i][j]); void sumamatriz (int m1[][n],int m2[][n], int m3[][n]) int i,j; for (i=0; i<n; i++) for (j=0; j<n; j++) m3[i][j]=m1[i][j]+m2[i][j]; -21-

void vermatriz (int m[][n]) int i,j; for (i=0; i<n; i++) for (j=0; j<n; j++) printf ("\nel elemento m(%d %d)es %d", i,j, m[i][j]); main () int matriz1[n][n], matriz2[n][n], matriz3[n][n]; printf ("\n Introduce valores de la primera matriz"); leermatriz (matriz1); printf ("\n Introduce valores de la segunda matriz"); leermatriz (matriz2); sumamatriz (matriz1, matriz2, matriz3); vermatriz (matriz3); -22-

Ejemplo 20: Dada la estructura de tipo 'cliente' definida en los ejemplos anteriores, hacer una función en C que amplíe el saldo de las cuentas en un 5% si el último pago se ha realizado en los 6 primeros meses del año. int actualizar (int mes, int saldo) if (mes<=6) return (0.05*saldo); else return 0; main () int i; struct fecha int mes; int dia; int anyo;; struct cuenta int num_cuenta; char tipo_cuenta; char nombre[80]; float saldo; struct fecha ult_pago; cliente[100]; for (i=0; i<100; i++) cliente[i].saldo=cliente[i].saldo+ actualizar(cliente[i].ult_pago.mes, cliente[i].saldo); -23-

Ejemplo 21: Definir una estructura para caracterizar un punto mediante sus dos coordenadas en el plano (x e y) y otra para definir un rectángulo en función de dos puntos. Hacer posteriormente una función en C para determinar si dado un punto, éste se encuentra dentro del rectángulo. struct punto int x; int y; ; struct rectangulo struct punto pt1; struct punto pt2; ; struct punto makepoint (int x, int y) struct punto puntaux; puntaux.x=x; puntaux.y=y; return puntaux; -24-

int puntrect (struct punto p1, struct rectangulo rect) if ((p1.x >= rect.pt1.x) && (p1.x <= rect.pt2.x) && (p1.y >= rect.pt1.y) && (p1.y <= rect.pt2.y)) return 1; else return 0; main () struct punto puntx; struct rectangulo rect; rect.pt1=makepoint (3,4); rect.pt2=makepoint (6,10); puntx=makepoint (5,8); if (puntrect (puntx, rect)) printf ("\nel punto está en el rectángulo "); else printf ("\nel punto no está en el rectángulo "); -25-