practica 01: programación en c bajo linux y funciones · similar a unix denominado linux, ......

32
Estructuras de datos (Prof. Edgardo A. Franco) 1 Practica 01: Programación en C bajo Linux y funciones M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Upload: trandung

Post on 09-May-2018

222 views

Category:

Documents


1 download

TRANSCRIPT

Estructuras de datos (Prof. Edgardo A. Franco)

1

Practica 01: Programación en C bajo Linux y funciones

M. en C. Edgardo Adrián Franco Martínez http://[email protected]@edfrancom edgardoadrianfrancom

Contenido• Programación en C bajo Linux

• ¿Qué es Linux?

• ¿Qué se necesita instalar para programar en C bajo Linux?

• Editor de código fuente en Linux

• Escribiendo un primer programa

• La terminal de Linux

• Requerimientos de la Practica 01

• Observaciones

• Envío de la practica

• Formato del reporte

• Fechas de entrega

2

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

¿Qué es Linux?• GNU/Linux es uno de los términos empleados para

referirse a la combinación del núcleo o kernel libresimilar a Unix denominado Linux, que es usado conherramientas de sistema GNU.

• Su desarrollo es uno de los ejemplos más prominentesde software libre; todo su código fuente puede serutilizado, modificado y redistribuido libremente porcualquiera bajo los términos de la GPL (Licencia PúblicaGeneral de GNU) y otra serie de licencias libres.

• A pesar de que Linux (núcleo) es, en sentido estricto, elsistema operativo, parte fundamental de la interacciónentre el núcleo y el usuario (o los programas deaplicación) se maneja usualmente con las herramientasdel proyecto GNU o de otros proyectos como GNOME.

3

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

¿Qué se necesita instalar para programar en C?• El compilador de C bajo Linux es gcc, este viene instalado por

defecto en varias distribuciones, pero en algunas distribucionesnecesita ser instalado de los repositorios.

• GNU Compiler Collection (GCC): Es el compilador creado por elproyecto GNU. Se trata de una colección de programas libresintegrados capaces de compilar diversos lenguajes de programación,entre estos C, C++, Objective-C, Java, Ada y Fortran.

• GCC es utilizado en el desarrollo de la mayoría de programas libres.Especialmente, el núcleo Linux depende estrechamente de lasfuncionalidades de GCC.

• En la práctica, la abreviación GCC es utilizada para nombrar a tresentidades ligeramente diferentes:1. La colección completa de compiladores2. La parte común a todos los compiladores3. El compilador en si.

4

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

¿Qué se necesita instalar para programar en C en linux?

• Al igual que en Windows, solo es necesario un editor detexto para editar el código fuente.

• Una vez que se tienen el "archivo.c", solo es necesariocompilarlo con gcc.

• Es necesario acceder a la consola y ubicarse en la rutadel fuente para poder llamar al compilador y darlecomo argumento el nombre del fuente o en su defectola ruta completa.• Compilación en el sistema operativo Linux:

• Ejecución de un programa en Linux:

gcc nombre_programa.c -o nombre_ejecutable

./nombre_ejecutable

5

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Editor de código fuente para programar en Linux

• En cualquier distribución de Linux (Ubuntu, Fedora,SUSE, etc.) generalmente se incluye el editor degedit, el cual es suficiente, ya que reconoce lasintaxis de varios lenguajes de programación y nosmuestra un código en colores.

Algunos otros editores de texto

para Linux son: vi, kedit, jed,

emacs, scite, etc.. 6

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Escribiendo un primer programa

#include <stdio.h>

int main(void)

{

printf("Hola mundo");

printf("\nProgramando en C bajo Linux");

return 0;

}

• Capturar el siguiente programa en gedit y guardar en algunaubicación como programa1.c

• Compilar

gcc programa1.c –o programa17

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

La terminal de Linux• Linux utiliza una herramienta llamada consola de

comandos o Terminal desde la cual se puedenejecutar una serie de sentencias para acceder aciertos lugares del sistema, realizar ciertas tareas osimplemente visualizar reportes importantes.

• El análogo en Windows, a la consola de comandos deLinux, sería la ventana de DOS (en Windows seacceder Inicio> Ejecutar> cmd> Enter) con lasalvedad de que en Linux tiene un mayor potencial.

http://tuxpepino.wordpress.com/2007/05/08/comandos-indispensables-en-gnulinux/Comandos básico de la Terminal de Linux

8

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

La terminal de Linux

9

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01• Realizar un programa capaz de ayudar a resolver

ejercicios de geometría analítica, según lossiguientes requerimientos.

• El programa deberá de mostrar un primer menúcomo el siguiente:

MENÚ PRINCIPAL1 La línea recta2 La circunferencia3 Coordenadas polares4 Salir

10

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

• Al seleccionar la opción 1 del MENÚ PRINCIPAL sedeberá de mostrar un menú como el siguiente:

LA LÍNEA RECTA1 Ecuación de la recta dada su pendiente y un punto de la misma2 Ecuación de la recta que pasa por dos puntos3 Distancia entre dos puntos del plano4 Punto medio entre dos puntos del plano5 Perímetro y área de un triangulo en el plano6 Regresar al menú principal

11

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

LA LÍNEA RECTA

• Al seleccionar la opción 1, se le solicitara al usuariointroducir la pendiente de la recta m y el puntoP1(x1,y1).

• Con ello el programa mostrará la ecuación de larecta que pasa por el punto P1(x1,y1) y con pendientem.

m12

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

Formato de la ecuación de la recta y=mx+b

LA LÍNEA RECTA

• Al seleccionar la opción 2, se le solicitara alusuario introducir dos puntos de la recta P1(x1,y1)y P2(x2,y2).

• Con ello el programa mostrará la ecuación de larecta que pasa por los puntos P1(x1,y1) y P2(x2,y2).y mostrará también el valor de la pendiente m dela recta.

13

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

Formato de la ecuación de la recta y=mx+b

LA LÍNEA RECTA

• Al seleccionar la opción 3, se le solicitara al usuariointroducir dos puntos P1(x1,y1) y P2(x2,y2).

• Con ello el programa mostrará la distancia entreambos puntos P1(x1,y1) y P2(x2,y2).

14

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

LA LÍNEA RECTA

• Al seleccionar la opción 4, se le solicitara al usuariointroducir dos puntos P1(x1,y1) y P2(x2,y2).

• Con ello el programa mostrará el punto medioP3(x3,y3) de entre los puntos P1(x1,y1) y P2(x2,y2).

15

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

LA LÍNEA RECTA

• Al seleccionar la opción 5, se le solicitara al usuariointroducir los tres puntos vértices del trianguloP1(x1,y1), P2(x2,y2) y P3(x3,y3).

• Con ello el programa mostrará el perímetro y áreadel triangulo con los vértices P1(x1,y1), P2(x2,y2) yP3(x3,y3).

16

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

LA LÍNEA RECTA

• Al seleccionar la opción 6, se mostrara nuevamenteel MENÚ PRINCIPAL.

MENÚ PRINCIPAL1 La línea recta2 La circunferencia3 Coordenadas polares4 Salir

17

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

• Al seleccionar la opción 2 del MENÚ PRINCIPAL sedeberá de mostrar un menú como el siguiente:

LA CIRCUNFERENCIA1 Ecuación de la circunferencia con centro enel origen y radio r2 Ecuación de la circunferencia con centroC y radio r3 Ecuación de la circunferencia con centroC y un puntoP4 Ecuación de la circunferencia conP1 yP2 como extremos del diámetro5 Regresar al menú principal

18

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

LA CIRCUNFERENCIA

• Al seleccionar la opción 1, se le solicitara al usuariointroducir el valor del radio r.

• Con ello el programa mostrará la ecuación de lacircunferencia con centro en el origen y radio r.

19

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

LA CIRCUNFERENCIA

• Al seleccionar la opción 2, se le solicitara al usuariointroducir el centro C(x0,y0) y el valor del radio r.

• Con ello el programa mostrará la ecuación de lacircunferencia con centro C(x0,y0) y radio r.

20

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

LA CIRCUNFERENCIA

• Al seleccionar la opción 3, se le solicitara al usuariointroducir el centro C(x0,y0) y un punto P(x,y) pordonde pasa la circunferencia.

• Con ello el programa mostrará la ecuación de lacircunferencia y el valor de radio r con centro C(x0,y0)y que pasa por P(x,y).

21

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

LA CIRCUNFERENCIA

• Al seleccionar la opción 4, se le solicitara al usuariointroducir los puntos P1(x1,y1) y P2(x2,y2), los cualesforman una línea que forma el diámetro de lacircunferencia.

• Con ello el programa mostrará la ecuación de lacircunferencia, el valor del centro C(x0,y0) y el valordel radio r de la circunferencia con extremos deldiámetro P1(x1,y1) y P2(x2,y2).

22

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

LA CIRCUNFERENCIA

• Al seleccionar la opción 5, se mostrara nuevamenteel MENÚ PRINCIPAL.

MENÚ PRINCIPAL1 La línea recta2 La circunferencia3 Coordenadas polares4 Salir

23

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

• Al seleccionar la opción 3 del MENÚ PRINCIPAL sedeberá de mostrar un menú como el siguiente:

COORDENADAS POLARES1 Pasar un punto de coordenadas rectangulares a polares2 Pasar un punto de coordenadas polares a rectangulares3 Regresar al menú principal

24

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

COORDENADAS POLARES

• Al seleccionar la opción 1, se le solicitara al usuariointroducir el puntos P(x,y) a transformar.

• Con ello el programa mostrará su correspondientecoordenada polar (r, Ɵ).

25

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

COORDENADAS POLARES

• Al seleccionar la opción 2, se le solicitara al usuariointroducir el valor de r y el ángulo Ɵ a transformar.

• Con ello el programa mostrará su correspondientecoordenada rectangular P(x,y).

26

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

LA CIRCUNFERENCIA

• Al seleccionar la opción 3, se mostrara nuevamenteel MENÚ PRINCIPAL.

MENÚ PRINCIPAL1 La línea recta2 La circunferencia3 Coordenadas polares4 Salir

27

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

• Al seleccionar la opción 4 del MENÚ PRINCIPALel programa termina.

28

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Requerimientos de la Practica 01

• Se deberán de usar funciones para resolver el problema.

• Las funciones deberán evitar que se tenga que reescribiruna serie de pasos varias veces en el código.

• Los menús se trabajarán bajo una función cada uno.

• Es claro que algunas funciones de este programa tendránque imprimir el resultado en pantalla, ya que no puedenregresar más de un valor. En otros casos si es necesarioutilizar variables globales.

• No usar conceptos no vistos en clase (estructuras,apuntadores, arreglos, etc.).

29

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Observaciones

Formato del reportes de practica• Portada• Introducción• Planteamiento del problema• Diseño y funcionamiento de la solución (Descripción de la abstracción del

problema y su solución modular, apoyándose de diagramas de flujo y figuras en unlenguaje claro).

• Implementación de la solución (Según la solución diseñada como seimplemento en el lenguaje de programación, explicaciones de los módulosimplementados)

• Funcionamiento (Verificación de la solución, pruebas, resumen de resultados desalida y Pantallazos)

• Errores detectados (Si existe algún error detectado, el cuál no fue posible resolvero se desconoce el motivo y solo ocurre con ciertas condiciones es necesario describirlo)

• Posibles mejoras (Describir posibles disminuciones de código en laimplementación o otras posibles soluciones)

• Conclusiones (Por cada integrante del equipo)

• Anexo (Códigos fuente *con colores e instrucciones de compilación)

• Bibliografía (En formato IEEE)30

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

¿Qué se envía por la página Web en una práctica?

• En un solo archivo (ZIP, RAR, TAR, JAR o GZIP)• Reporte (DOC, DOCX o PDF)

• Códigos fuente (.C, .H, etc.)

• Código documentado: Titulo, descripción, fecha, versión, autor.

• (Funciones y Algoritmos: ¿Qué hace?, ¿Cómo lo hace?, ¿Qué recibe?, ¿Qué devuelve?, ¿Causa de errores?).

• NO enviar ejecutables o archivos innecesarios, las instruccionesde compilación van en el anexo del reporte. (Yo compilare losfuente).

31

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez

Fechasde entrega1. Mostrar el funcionamiento de la practica en la sesión de

laboratorio del Martes 02 de Mayo de 2017.

2. Enviar vía Web en un archivo comprimido (ZIP, RAR oTAR), reporte y códigos de C antes del día Lunes 12 deJunio de 2016 (23:59:59 hora limite).

Grupo Contraseña1CM4 algoritmia1cm4

32

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

Pra

ctic

a 0

1:

Pro

gram

ació

n e

n C

baj

o L

inu

x y

fun

cio

nes

Pro

f. Ed

gard

o A

dri

án F

ran

co M

artí

nez