Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo Nro 1 Britney Bonaldy
Trabajo Nro 1 Britney Bonaldy
PROGRAMACION
II
Ingeniería de Sistemas
Profesora: Jorge Zamudio
1
Descargado por britney bonaldy (bricamacho92@gmail.com)
Barinas enero de 2021
INDICE
INTRODUCCION............................................................................................................................ 3
CONCLUSION.................................................................................................................................26
Un lenguaje de programación es una herramienta que nos permite elaborar programas (ficheros
ejecutables) de forma más o menos fácil. Los procesadores tan solo son capaces de ejecutar
instrucciones muy sencillas, tales como la suma de dos números, mover un valor del procesador
a la memoria, etc. Además, para entender este tipo de instrucciones, el procesador debe
recibirlas codificadas en sistema binario, es decir, como secuencia de unos y ceros. Para
entendernos, si el procesador recibe un 1000 0111,
Aunque se podría crear un programa simplemente escribiendo los cientos de millones de unos y
ceros que representan las órdenes del procesador (y en los años sesenta, con los primeros
ordenadores, así se hacía), este sistema resulta muy complicado. Por ese motivo, se decidió
simplificar un poco la tarea y se crearon los lenguajes de programación. Estos lenguajes son
simplemente programas que traducen las órdenes que nosotros les escribimos siguiendo unas
reglas sintácticas (por eso se llaman lenguajes) al idioma de unos y ceros, el único que el
procesador es capaz de entender. Según lo cerca o lo lejos que esté el lenguaje de programación
del idioma binario del ordenador, se clasifica en tres grupos:
• Lenguajes de alto nivel. Los lenguajes de alto nivel, entre los que se encuentra el C, son
la base de la programación. En estos lenguajes, en vez de escribir ADD, por ejemplo, podemos
escribir instrucciones del tipo “C=A+B” (es decir, C es igual a la suma de A más B), mucho
más cercanas a nuestro idioma natural. Existen muchísimos lenguajes de alto nivel: Basic,
Pascal, Fortran, Cobol, C… pero todos son muy parecidos, de forma que una vez aprendido
uno, es muy fácil aprender el resto. Además, C es uno de los más usados en el mundo (por no
decir el que más).
• Lenguajes orientados a objetos. Estos lenguajes son de nivel todavía más alto que
los anteriores, aunque se basan en ellos (por ejemplo C++ y Java, dos de los más comunes,
son extensiones de C). Al contrario de lo que ocurre con los lenguajes de alto nivel y el
ensamblador, no es posible aprender un lenguaje orientado a objetos sin conocer antes un
lenguaje de alto nivel. El objetivo de los lenguajes orientados a objetos es, sobre todo, crear
programas, no desde cero, sino juntando piezas programadas por otras personas.
La parte de C incluida en C++ es conocida como C‐ y puede compilarse en C++ sin ningún
problema. La sintaxis y las reglas de edición en general son iguales, por lo que a las
modificaciones introducidas por C++ a la edición de código procedural (es decir, como si se
tratase de C) se las denomina modificaciones menores ya que son fácilmente asumibles por un
programador de C. A las modificaciones introducidas para soportar la programación orientada a
objetos y la programación genérica, se las denomina modificaciones mayores, puesto que
requieren para su uso de un cambio radical en la filosofía de programación.
PRE PROCESADORES
El preprocesador es una parte del compilador que realiza una transformación del código fuente
antes de pasar a la compilación propiamente dicha. El preprocesador es el encargado de la
inclusión de ficheros, compilación condicional y definición y expansión de macros. Para indicarle
al preprocesador la realización de estas tareas este posee un lenguaje propio. Las directivas del
preprocesador comienzan siempre con el símbolo # y emplean toda la línea en la que se utilizan.
A continuación se tiene una tabla con las directivas del preprocesador junto a una breve descripción.
Directiva Descripción
#include Inclusión de ficheros.
#define Definición de macros.
#undef Deja de estar definida una macro.
#if Compilación condicional si se cumple condición.
#ifdef Compilación condicional si la macro está definida.
#ifndef Compilación condicional si la macro no está definida.
#elif Compilación condicional si no se cumple condición anterior y sí la actual.
#else Compilación condicional si no se cumple condición.
#endif Fin de compilación condicional.
#line Establece valor de macros LINE y FILE .
COMPILACIÓN CONDICIONAL
Permite decidir si una parte del programa va a ser compilada o no, dependiendo de una
condición. En la compilación condicional se emplean diversas directivas, entre las que se pueden
destacar las siguientes:
#if Condición
La condición debe ser una expresión calculable en tiempo de compilación. Si la condición es
verdadera se incluirá en el código desde ese punto hasta encontrar un “else”, “elif” o “endif”. En
caso de que la condición sea falsa se procesaría el “else “o el “elif”.
#ifdef Macro
Funciona igual que el “if” pero la condición a cumplir es que una macro este definida o no.
#ifndef Macro
Funciona como “ifdef” pero al contrario, la condición se cumple si la macro no está definida.
#elif Condición
En caso de que se alcance esta directiva al no cumplirse la condición de un “if” o “ifdef”, se evalúa
la condición. Si la condición es verdadera se incluye hasta el siguiente “elif” o “endif”. En caso de
que la condición sea falsa se actúa igual que en un “if”.
#else
En caso de que no se cumpla las condiciones de un “if”, “ifdef” o “elif” y exista un “else” se
incluye el código desde el “else” hasta el siguiente “endif”.
#endif
Indica el final de una estructura “if” o “ifdef”.
EJERCICIOS
1. _Realizar un Programa en C con Macros que calcule el cubo de un numero
ingresado, sabiendo que CUBO=num*num*num
#include <stdio.h>
#include <stdlib.h>
#define CUBO num*num*num
int main()
2. _Realizar un Programa en C con Macros donde P sea igual a printf, donde PI=3.1416 y
donde C sea igual a la velocidad de la luz (300000), mostrar estos datos en pantalla y luego
modificamos el valor de la velocidad luz multiplicándolo por PI / A y mostrarlo por
pantalla. NOTA: El usuario debe ingresar el valor de A.
#include <stdio.h>
#include <stdlib.h>
#define P printf
#define PI 3.1416
#define C 300000
int main()
{
float luz,a,x;
P(“Ingrese el valor de A\n\n”);
scanf(“%f”,&a);
x=C;
luz=x*PI/a;
P(“\nel valor de PI es: %f \n\n”,PI);
P(“el valor de la velocidad de la luz es: %f \n\n”,x);
P(“el valor de la velocidad de la luz modificado es: %f \n\n”,luz);
system(“PAUSE”);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#define NUM 4
int main()
{
#include <stdio.h>
#include <stdlib.h>
#define A 800
#define B 700
int main()
{
int C;
printf(“El Valor de A es:%d\t\n”,A);
printf(“El Valor de B es:%d\t\n”,B);
printf(“Ingrese el Valor de C: “);
scanf(“%d”, &C);
printf(“\n”);
if(A>B &&
A>C)
{ if(B>
C)
{
printf(“Descendente: %d, %d, %d “,A,B,C); printf(“\
nAscendente: %d, %d, %d “,C,B,A);
}
else
{
printf(“Descendente: %d, %d, %d “,A,C,B); printf(“\
nAscendente: %d, %d, %d “,B,C,A);
}
}
else
if(B>C && B>A)
{ if(C>
A)
{
printf(“Descendente: %d, %d, %d “,B,C,A); printf(“\
nAscendente: %d, %d, %d “,A,C,B);
printf(“\n\n\n”);
system(“PAUSE”);
return 0;
}
ORDENAMIENTO Y BÚSQUEDA
QUÉ ES ORDENAMIENTO
Es la operación de arreglar los registros de una tabla en algún orden secuencial de acuerdo a
un criterio de ordenamiento. El ordenamiento se efectúa con base en el valor de algún
campo en un registro. El propósito principal de un ordenamiento es el de facilitar las
búsquedas de los miembros del conjunto ordenado.
BURBUJA
La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de
ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el
siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario
revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual
significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la
que suben por la lista los elementos durante los intercambios, como si fueran pequeñas
"burbujas". También es conocido como el método del intercambio directo. Dado que solo
SELECCIÓN
INSERCIÓN
El ordenamiento por inserción (insertion sort en inglés) es una manera muy natural de
ordenar para un ser humano, y puede usarse fácilmente para ordenar un mazo de cartas
numeradas en forma arbitraria. Requiere O(n²) operaciones para ordenar una lista
de n elementos.
QUICK SORT
El ordenamiento rápido (quicksort en inglés) es un algoritmo creado por el científico
británico en computación C. A. R. Hoare basado en la técnica de divide y vencerás, que
permite, en promedio, ordenar n elementos en un tiempo proporcional a n log n.
MERGE SORT
El algoritmo de ordenamiento por mezcla (merge sort en inglés) es un algoritmo de
ordenamiento externo estable basado en la técnica divide y vencerás. Es de complejidad O
(nlog n).
HASHING
Hash: se refiere a una función o método para generar claves o llaves que representen de
manera casi unívoca a un documento, registro, archivo, etc., resumir o identificar un dato a
través de la probabilidad, utilizando una función hash o algoritmo hash. Un hash es el
resultado de dicha función o algoritmo.
Es un método de búsqueda que aumenta la velocidad de búsqueda, pero que no requiere que
los elementos estén ordenados. Consiste en asignar a cada elemento un índice mediante una
transformación del elemento. Esta correspondencia se realiza mediante una función de
conversión, llamada función hash. La correspondencia más sencilla es la identidad, esto es,
al número 0 se le asigna el índice 0, al elemento 1 el índice 1, y así sucesivamente. Pero si
11
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num[100],n;
int i,j,k,temp;
printf("\nCuantos Valores desea Ingresar:\t\
t"); scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\nIngrese un Numero:\t");
scanf("%d",&num[i]);
}
printf("\nNumeros antes de Ordenar\n\n\t");
for(j=0;j<n;j++)
{
printf("%d,",num[j]);
}
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(num[i]<num[j])
{
temp=num[i];
num[i]=num[j];
num[j]=temp;
}
12
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num[100],n;
int i,j,k,temp;
printf("ingrese cantidad de numeros\n");
13
#include <stdio.h>
#include <stdlib.h>
int main()
{
int tabla[6]={49,20,50,50,79,89};
int i,j,k,temp;
14
system("PAUSE");
return 0;
}
Ü fopen
Esta función sirve para abrir y crear ficheros en disco.
El prototipo correspondiente de fopen es:
15
Adicionalmente hay tipos utilizando "b" (binary) los cuales no serán mostrados por ahora y
que solo se usan en los sistemas operativos que no pertenecen a la familia de unix.
Ü fclose
Esta función sirve para poder cerrar un fichero que se ha abierto.
El prototipo correspondiente de fclose es:
int fclose (FILE *stream);
Un valor de retorno cero indica que el fichero ha sido correctamente cerrado, si ha habido
algún error, el valor de retorno es la constante EOF.
Un ejemplo pequeño para abrir y cerrar el archivo llamado fichero.in en modo lectura:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
FILE *fp;
fp = fopen ( "fichero.in", "r" );
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE*fp;
char caracter;
fp=fopen("prueba2.txt","r+");
printf("introduce el texto");
while((caracter=getchar())!='\n')
{
printf("%c",fputc(caracter,fp));
}
fclose(fp);
system("PAUSE");
return 0;
}
2. _Realizar un Programa en C que permita crear un archivo para escritura y lectura.
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE*fp;
char caracter;
fp=fopen("prueba2.txt","w");
printf("introduce el texto");
while((caracter=getchar())!='\n')
{
printf("%c",fputc(caracter,fp));
}
fclose(fp);
system("PAUSE");
return 0;
}
3. _Realizar un Programa en C que permita abrir un archivo para lectura.
#include <stdio.h>
24
system("PAUSE");
return 0;
}
4. _Realizar un Programa en C que muestre el uso de fputs en un fichero.
#include <stdio.h>
int main()
{
FILE*fp;
fp=fopen("prueba.txt","a+");
fputs(cadena,fp);
fclose(fp);
return 0;
}
5. _Realizar un Programa en C que muestre el uso de fprintf en un fichero.
#include <stdio.h>
int main ()
{
FILE *fp;
fprintf(fp, buffer);
25
fclose ( fp );
return 0;
}
CONCLUSIÓN
Los lenguajes de alto nivel se desarrollaron con el objetivo de ser más accesibles y
entendibles por la mayoría de programadores, de manera que los programadores pudieran
concentrarse más en resolver la tarea o los problemas y no en el lenguaje que la maquina
tenía que entender.
C++ surge de fusionar dos ideas: la eficiencia del lenguaje C para poder acceder al
hardware al ejecutar tareas que realmente demandaban recursos de memoria; y las ideas de
abstracción que representan las el nuevo conceptos de clases y objetos.
El lenguaje C++ presenta grandes herramientas de desarrollo para los programadores
como las De funciones, bibliotecas, clases y los objetos. Manera que el programador se
ocupa de utilizar dichas herramientas para resolver un problema específico.
El lenguaje C++ posee una serie de características que lo hacen distinto del lenguaje C.
Aunque es posible verlo como una simple extensión del lenguaje C, en realidad implica un
cambio en la forma de pensar por parte del programador.
26