Sunteți pe pagina 1din 30

2011

EJERCICIOS BSICOS

Javier Garca Cambronel SEGUNDO DE ASIR 13/12/2011

ANTES DE EMPEZAR LENGUAJE C EN UBUNTU EJERCICIOS EN UBUNTU

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIO1 Apartado 3.1.1b: Crear un programa que pida al usuario dos nmeros enteros y diga cul es el mayor de ellos. EJERCICIO2 Apartado 3.1.1c: Crear un programa que pida al usuario dos nmeros enteros y diga si el primero es mltiplo del segundo (pista: igual que antes, habr que ver si el resto de la divisin es cero: EJERCICIO3 Apartado 3.1.3a: Crear un programa que multiplique dos nmeros enteros de la siguiente forma: pedir al usuario un primer nmero entero. Si el nmero que s que teclee es 0, escribir en pantalla El producto de 0 por cualquier nmero es 0. Si se ha tecleado un nmero distinto de cero, se pedir al usuario un segundo nmero y se mostrar el producto de ambos. EJERCICIO4 Apartado 3.1.4a: Crear un programa que multiplique dos nmeros enteros de la siguiente forma: pedir al usuario un primer nmero entero. Si el nmero que se que teclee es 0, escribir en pantalla El producto de 0 por cualquier nmero es 0. Si se ha tecleado un nmero distinto de cero, se pedir al usuario un segundo nmero y se mostrar el producto de ambos. (Variante con "else") EJERCICIO5 Apartado 3.1.5b: Crear un programa que pida al usuario dos nmeros enteros y diga Uno de los nmeros es positivo, Los dos nmeros son positivos o bien Ninguno de los nmeros es positivo, segn corresponda. EJERCICIO6 Apartado 3.1.5c: Crear un programa que pida al usuario tres nmeros reales y muestre cul es el mayor de los tres. EJERCICIO7 Apartado 3.1.5d: Crear un programa que pida al usuario dos nmeros enteros cortos y diga si son iguales o, en caso contrario, cul es el mayor de ellos. EJERCICIO8 Apartado 3.1.9a: Crear un programa que use el operador condicional para mostrar un el valor absoluto de un nmero de la siguiente forma: si el nmero es positivo, se mostrar tal cual; si es negativo, se mostrar cambiado de signo. EJERCICIO9 Apartado 3.1.9b: Crear un programa que use el operador condicional para dar a una variable llamada iguales (entera) el valor 1 si los dos nmeros que ha tecleado el usuario son iguales, o el valor 0 si son distintos

EJERCICIOS DESDE WINDOWS CON IDE DEV-CPP EJERCICIOS DESDE WINDOWS CON IDE CODE BLOCKS
SEGUNDO DE ASIR COMPARATIVA CODE BLOCK Y DEV-C++ Pgina 1

[EJERCICIOS BSICOS] 13 de diciembre de 2011

ANTES DE EMPEZAR
Tenemos que instalar build-essential, ya que esta es una lista informativa de paquetes esenciales para poder compilar de esta manera: sudo apt-get install build-essential Te pedir una contrasea, que es la que utilizas para "entrar" a Ubuntu a no ser que ya ests como sper usuario que entonces no tendrs que poner ninguna contrasea. Como nosotros ya tenemos instalado este paquete porque estamos utilizando backtrack y ya viene previamente instalado no instala ningn paquete y nos dice que este paquete ya se encuentra instalado y est en su ltima versin

(Ojo, si tienes el CD de Ubuntu, mtelo en la unidad de CD o DVD, el que tengas y te dir si quieres abrir el gestor de paquetes, le das clic en esta opcin y se abrir synaptic, entonces buscas build-essential y lo marcas para intalar, clic con el botn derecho y marcar para instalar, eso s, desconecta por este momento la conexin a Internet, para que descargue los paquetes desde el CD y no de Internet, das clic en el botn aplicar, que se encuentra en la barra de herramientas, esperas un rato y listo)

Si todo marcho a la perfeccin, ya estamos listos para programar

SEGUNDO DE ASIR

Pgina 2

[EJERCICIOS BSICOS] 13 de diciembre de 2011

LENGUAJE C EN UBUNTU
1.Abres terminal (como explique ms arriba) y haces lo siguiente (para iniciar, solo usaremos consola, aunque existen otras alternativas grficas como Anjuta, Code::Blocks, Eclipse, etc...): usuario@equipo:~$ gedit ejemplo.c (Usuario y equipo dependen de tu equipo, los pongo para referencia) En mi equipo:

2. Crear el programa (En este ejemplo uso el editor gedit, y el archivo que voy a crear es el ejemplo.c) con el siguiente contenido CDIGO #include <stdio.h> int main() { printf("Hola mundo"); printf("\n"); return 0; } Quedara como vemos en la imagen de abajo y pulsaramos en guardar, con lo que quedara guardado en la carpeta personal de nuestro usuario aunque podramos seleccionar donde queremos que se guarde.

AQU SE GUARDA POR DEFECTO EN NUESTRO PC

SEGUNDO DE ASIR

Pgina 3

[EJERCICIOS BSICOS] 13 de diciembre de 2011


3. Compilarlo, para esto, tenemos que escribir en terminal: gcc ejemplo.c -o ejemplo

Con esto le indicamos que vamos a compilar el archivo ejemplo.c con el compilador gcc, que es el utilizado en Linux para C, y que a la salida (-o, ojo, no es un cero, es una o) del ejecutable ejemplo.

4. Ejecutarlo Ahora bien, a ejecutar nuestro programa con un: ./ejemplo

5. Comprobar su funcionamiento Desde terminal y obtenemos esto: usuario@equipo:~$ ./ejemplo Hola mundo

SEGUNDO DE ASIR

Pgina 4

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIOS EN UBUNTU
EJERCICIO1
Apartado 3.1.1b: Crear un programa que pida al usuario dos nmeros enteros y diga cul es el mayor de ellos.
#include <stdio.h> main() { int x, y; int mayor; printf("Introduce el primer numero "); scanf("%d", &x); printf("Introduce el segundo numero "); scanf("%d", &y); if (x > y) mayor = x; else mayor = y; printf("El mayor es: %d", mayor ); } COMENTARIO SOBRE EL CDIGO Lo nico que hay que tener en cuenta de este cdigo es que cada vez que introducimos un nmero tomamos su valor y lo asignamos a x o y que corresponden a nmeros enteros despus de esto hacemos un if asignando segn la condicin impuesta en este caso (x>y ) un valor a mayor, el de (x) y si no es as, le asignamos el valor de (y) y despus imprimimos el valor de mayor

SEGUNDO DE ASIR

Pgina 5

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPROBACIN
Introducimos el primer nmero que es siete y el segundo 21 y como vemos, nos dice que el mayor es el segundo que hemos introducido en este caso 21.

El primer nmero que introducimos es 16 y el segundo cuatro, como vemos nos maraca que el mayor que hemos introducido es el primero, en este caso 16.

SEGUNDO DE ASIR

Pgina 6

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIO2
Apartado 3.1.1c: Crear un programa que pida al usuario dos nmeros enteros y diga si el primero es mltiplo del segundo (pista: igual que antes, habr que ver si el resto de la divisin es cero:
#include <stdio.h> main() { int x, y; printf("Introduce el primer numero "); scanf("%d", &x); printf("Introduce el segundo numero "); scanf("%d", &y); if (x%y == 0) printf("El primer nmero es mltiplo del segundo."); if (x%y != 0) printf("El primer nmero no es mltiplo del segundo."); } COMENTARIO SOBRE EL CDIGO Lo nico que hay que tener en cuenta de este cdigo es que cada vez que introducimos un nmero tomamos su valor y lo asignamos a x o y que corresponden a nmeros enteros despus de esto hacemos un if entre el valor de los nmeros introducidos dentro de este una divisin entre los dos valores y si el restos es igual a 0 muestra que s que es mltiplo el primer nmero del segundo y si no, nos dice que no lo es.

SEGUNDO DE ASIR

Pgina 7

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPROBACIN
Comprobamos si el nmero 27 es mltiplo de 3 y como vemos, es cierto y as nos lo dice.

Comprobamos si 16 es mltiplo de 2 y como vemos, es cierto y as nos lo dice.

Ahora comprobamos si 32 es mltiplo de 3 siendo en realidad, de 2, como no es cierto, as nos lo muestra dicindonos que no es su mltiplo.

SEGUNDO DE ASIR

Pgina 8

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIO3
Apartado 3.1.3a: Crear un programa que multiplique dos nmeros enteros de la siguiente forma: pedir al usuario un primer nmero entero. Si el nmero que s que teclee es 0, escribir en pantalla El producto de 0 por cualquier nmero es 0. Si se ha tecleado un nmero distinto de cero, se pedir al usuario un segundo nmero y se mostrar el producto de ambos.
#include<stdio.h>

main( ) { int x,y; printf("Introduzca un numero:"); scanf("%d",&x); COMENTARIO SOBRE EL CDIGO En este cdigo cuando introducimos el primer nmero toma el valor y si el valor es igual a 0 nos muestra el mensaje correspondiente si no es as nos pide el segundo nmero y hacemos la multiplicacin.

if(x==0) printf("El producto de 0 por cualquier nmero es 0"); if ((x>0) || (x<0)) printf("Introduzca otro numero:"); scanf("%d",&y); printf("el resultado es:%d",x*y); }

SEGUNDO DE ASIR

Pgina 9

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPROBACIN
Multiplicamos dos nmeros positivos en este caso 4X7 como vemos el resultado de la operacin es 28 con lo que se ha efectuado correctamente.

Multiplicamos dos nmeros ahora uno negativo por uno positivo -6X7 y como vemos el resultado que nos muestra es correcto dicindonos que es -42

Sin embargo, cuando introducimos como primer nmero 0 mostramos el mensaje de advertencia indicado en el ejercicio El producto de 0 por cualquier nmero es 0 cancelando as la operacin.

SEGUNDO DE ASIR

Pgina 10

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIO4
Apartado 3.1.4a: Crear un programa que multiplique dos nmeros enteros de la siguiente forma: pedir al usuario un primer nmero entero. Si el nmero que se que teclee es 0, escribir en pantalla El producto de 0 por cualquier nmero es 0. Si se ha tecleado un nmero distinto de cero, se pedir al usuario un segundo nmero y se mostrar el producto de ambos. (Variante con "else")
#include<stdio.h>

main( ) { int x,y; printf("Introduzca un numero:"); scanf("%d",&x); if(x==0) printf("El producto de 0 por cualquier nmero es 0"); else printf("Introduzca otro numero:"); scanf("%d",&y); printf("el resultado es:%d",x*y); }

COMENTARIO SOBRE EL CDIGO


Lo mismo que el ejercicio anterior pero esta vez hacindolo con un else cuando no se cumple la condicin de que el primer nmero sea 0, lo cual optimiza ms el cdigo.

SEGUNDO DE ASIR

Pgina 11

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPROBACIN
Multiplicamos 6X5 y vemos que el resultado es correcto 30.

Volvemos a hacer otra multiplicacin de dos nmeros simples 56X3 y como vemos el resultado que nos da es de 168

Multiplicamos un nmero negativo por otro positivo y como vemos el resultado tambin es correcto, dndonos -18

Y aqu comprobamos que cuando introducimos como primer nmero un 0 nos salta un mensaje diciendo que El producto de 0 por cualquier nmero es 0 cancelando la operacin

SEGUNDO DE ASIR

Pgina 12

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIO5
Apartado 3.1.5b: Crear un programa que pida al usuario dos nmeros enteros y diga Uno de los nmeros es positivo, Los dos nmeros son positivos o bien Ninguno de los nmeros es positivo, segn corresponda.
#include <stdio.h> main() { int x, y; printf("Introduce el primer numero "); scanf("%d", &x); printf("Introduce el segundo numero "); scanf("%d", &y); if ((x>-1) && (y>-1)) printf("los dos son numeros positivos"); if (x>-1) printf("el primer numero es positivo"); if (y>-1) printf("el segundo numero es positivo"); if ((x<-1) && (y<-1)) printf("ninguno de los dos son positivos"); } COMENTARIO SOBRE EL CDIGO Cada vez que introducimos un nmero tomamos su valor y lo asignamos a x o y que corresponden a nmeros enteros despus de esto hacemos un if asignando segn la condicin impuesta un mensaje a cada uno. PRIMER IF: si x mayor que -1 e y tambin

SEGUNDO IF: si x mayor que -1


TERCER IF: si y mayor que -1 CUARTO IF: si x menor que -1 e y tambin

SEGUNDO DE ASIR

Pgina 13

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPROBACIN
Introducimos el primer nmero negativo y el segundo positivo u nos dice que el segundo nmero es positivo.

Introducimos el primer nmero positivo y el segundo negativo y nos dice cual es el nmero positivo, en este caso el primero.

Introducimos el primer nmero negativo y el segundo tambin, entonces, se nos muestra que de los dos nmeros introducidos ninguno es positivo.

SEGUNDO DE ASIR

Pgina 14

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIO6
Apartado 3.1.5c: Crear un programa que pida al usuario tres nmeros reales y muestre cul es el mayor de los tres.
#include <stdio.h>

main() { float x, y, z; float mayor;

printf("Introduce el primer numero "); scanf("%f", &x);

COMENTARIO SOBRE EL CDIGO Una vez que tomamos los valores de los tres nmeros introducidos comprobamos las condiciones y asignamos el valor correspondiente a mayor, luego mostramos el valor de este con printf.

printf("Introduce el segundo numero "); scanf("%f", &y);

printf("Introduce el tercer numero "); scanf("%f", &z);

if ((x > y) && (x > z)) mayor = x; else if (y > z) mayor = y; else mayor = z;

printf("El mayor de los tres es: %f", mayor ); } SEGUNDO DE ASIR Pgina 15

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPROBACIN
Introducimos tres nmeros 1, 2 y 3 y nos muestra el de mayor valor, nos dice que es 3.

Introducimos tres nmeros el 5, 4 y el 6 y nos dice cul es el de mayor valor introducido, en este caso el 6.

Introducimos tres nmeros negativos el -5 el -7 y el -2 y nos dice que el mayor de todos ellos es el -2, es decir, el que est ms cerca de un nmero positivo.

SEGUNDO DE ASIR

Pgina 16

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIO7
Apartado 3.1.5d: Crear un programa que pida al usuario dos nmeros enteros cortos y diga si son iguales o, en caso contrario, cul es el mayor de ellos.
#include <stdio.h> main() { short x, y; short mayor; printf("Introduce el primer numero "); scanf("%hd", &x); printf("Introduce el segundo numero "); scanf("%hd", &y); if (x > y) mayor = x; else mayor = y; printf("El mayor es: %hd", mayor ); if (x==y) printf("los dos numeros son iguales"); } COMENTARIO SOBRE EL CDIGO Muy parecido al ejercicio anterior, solo ponindole una nueva condicin para cuando el valor de x e y son el mismo que se muestre el mensaje correspondiente y tambien.

SEGUNDO DE ASIR

Pgina 17

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPROBACIN
Introducimos dos nmeros y nos muestra el mayor de ellos

SEGUNDO DE ASIR

Pgina 18

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIO8
Apartado 3.1.9a: Crear un programa que use el operador condicional para mostrar un el valor absoluto de un nmero de la siguiente forma: si el nmero es positivo, se mostrar tal cual; si es negativo, se mostrar cambiado de signo.
#include <stdio.h> main() { int a, absoluto; printf("Escribe el numero: "); scanf("%d", &a); absoluto = (a>0) ? a : (a*-1); printf("El valor absoluto del numero es %d", absoluto); } COMENTARIO SOBRE EL CDIGO Lo nico de especial digamos del cdigo es entender el funcionamiento del operador condicional y es este Condicin ? valorsisecumple:valorsinosecumple Y como segunda observacin diremos que para hallar el valor absoluto de un nmero negativo tenemos que multiplicarlo por -1, aunque dicha aclaracin sea ms matemtica que del lenguaje que estamos comentando.

SEGUNDO DE ASIR

Pgina 19

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPROBACIN
Metemos un nmero positivo y como su valor absoluto, es el mismo nos da el mismo valor en este caso 8.

Metemos un nmero negativo, su valor absoluto es el mismo nmero pero con valor positivo y como vemos hace la operacin correspondiente, en este caso con -6 y nos da el valor de seis el cul es el valor absoluto.

SEGUNDO DE ASIR

Pgina 20

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIO9
Apartado 3.1.9b: Crear un programa que use el operador condicional para dar a una variable llamada iguales (entera) el valor 1 si los dos nmeros que ha tecleado el usuario son iguales, o el valor 0 si son distintos.
#include <stdio.h> COMENTARIO SOBRE EL CDIGO Mirar el comentario del ejercicio anterior el esquema de cmo funciona un operador condicional.

main() { int a, b, iguales; printf("Escribe un numero: "); scanf("%d", &a); printf("Escribe otro numero: "); scanf("%d", &b); iguales = (a==b) ? 1 : 0; printf("%d", iguales); }

SEGUNDO DE ASIR

Pgina 21

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPROBACIN
Introducimos dos nmeros, como no coinciden nos da el valor de 0.

Introducimos dos nmeros, como coinciden nos da el valor de 1.

SEGUNDO DE ASIR

Pgina 22

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIOS DESDE WINDOWS CON IDE DEV-CPP


FUNCIONAMIENTO Y EJERCICIO1
Una vez que lo hemos instalado le damos a nuevo cdigo fuente y escribimos el cdigo sobre el que vamos a trabajar.

Vamos a archivo -> guardar o guardar como y vemos la siguiente pantalla donde elegimos el nombre del archivo a guardar

SEGUNDO DE ASIR

Pgina 23

[EJERCICIOS BSICOS] 13 de diciembre de 2011


Despus lo que debemos hacer es compilar el cdigo

Para ejecutar el archivo y que y que no se salga cuando ejecutemos ejecutarlo desde cmd tambin hay una instruccin que soluciona este problema en el buffer, como los archivos les tenemos en mis documentos pongo la ruta y una vez all ejecutamos el programa.

COMPROBACIN

SEGUNDO DE ASIR

Pgina 24

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIO2

COMPROBACIN

EJERCICIO3

COMPROBACIN

SEGUNDO DE ASIR

Pgina 25

[EJERCICIOS BSICOS] 13 de diciembre de 2011

EJERCICIOS DESDE WINDOWS CON IDE CODE BLOCKS


FUNCIONAMIENTO Y EJERCICIO1
Creamos un nuevo proyecto, le damos a consola, elegimos c y lo dejamos todo por defecto despus, creamos nuestro cdigo lo compilamos con build lo ejecutamos con run y como en la siguiente imagen podemos hacer las dos cosas seguidas, compilarlo y ejecutarlo para ver los resultados.

SEGUNDO DE ASIR

Pgina 26

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPROBACIN

EJERCICIO2 COMPROBACIN

EJERCICIO3 COMPROBACIN

SEGUNDO DE ASIR

Pgina 27

[EJERCICIOS BSICOS] 13 de diciembre de 2011

COMPARATIVA CODE BLOCK Y DEV-C++


DEV-C++

Dev-C++ es un entorno de desarrollo para los lenguajes C y C++. Adems del consabido editor, aade un compilador y otras utilidades menos evidentes que lo convierten en un gran aliado en la programacin. Dev-C++ integra utilidades como un debugger, un explorador de clases y paquetes, un depurador de cdigo y un asistente de proyecto. Todo ello junto al completo editor con realce de sintaxis y predictor de expresiones. La inclusin de bibliotecas estticas y DLL, adems de otras plantillas de Dev-C++, ayuda a que los primeros pasos en la programacin sean ms sencillos. Pros

Editor muy completo Multitud de utilidades en paralelo Bibliotecas, libreras DLL y plantillas Ayuda en varios idiomas Software libre con todo el soporte que la gente le proporciona

Contras

Algo ms pesado que otros programas similares Solo compatible con Windows aunque podemos hacerlo correr en Ubuntu instalando wine y en bactrack directamente pues wine ya viene previamente instalado

SEGUNDO DE ASIR

Pgina 28

[EJERCICIOS BSICOS] 13 de diciembre de 2011

CODE :: BLOCKS

Code::Blocks es un entorno de desarrollo gratuito para el lenguaje C++. Es compatible con 20 compiladores distintos, incluidos GCC, Microsoft Visual C++, Tiny C, Digital Mars y Borland C++. Gracias a los numerosos plugins y opciones, Code::Blocks es plenamente configurable. Funcionalidades como el formato automtico de cdigo o incluso pequeos juegos integrados en el IDE se pueden aadir en cualquier momento bajando la extensin correspondiente. Code::Blocks prescinde de archivos Make, haciendo que el proceso de compilacin sea mucho ms rpido. Pros

Deteccin automtica de compiladores Compilacin sin archivos makefile Extensible mediante complementos Autocompletado de cdigo Software libre

Contras

Sin traducciones Algunos plugins son de baja calidad

SEGUNDO DE ASIR

Pgina 29

S-ar putea să vă placă și