Sunteți pe pagina 1din 23

Tema 4.2 Estructura de un programa.

Programar en modo ASH. Para programar en modo ASH es necesario realizar varias tareas de inicio. Paso 1. Llevar el robot a HOME. Paso 2. Escribir el comando W0 (cero). Esto es para que la computadora nos proporcione las coordenadas actuales del robot, para saber hacia donde tenemos que dirigirnos.
Como cualquier Lenguaje el RAPL3, cuenta con un editor y un compilador, que tambin se encuentran en el ROBCOMM3, el Programa fuente es un archivo que debe de contener la extensin r3, y podr ser escrito en otro editor, siempre que contenga dicha extensin. La Estructura general para un programa en RAPL3 es similar a los programas en lenguaje C, en donde hay que respetar las estructuras programticas El formato es el siguiente: definicin de variables: (puede ser antes o despus de definir el segmento principal main) teachable int i, a1....axx, float b.... etc. Para el caso en que las variables se refieran a ubicacin de puntos grabados en el controlados del robot, se especifica el tipo de exactitud de las variables (cloc, ploc) en dnde cloc (localizacin cartesiana) se refiere a que se va a referenciar para la exactitud en sistema de coordenadas cartesiano, y ploc (puntos de localizacin) lo har directamente de los puntos provenientes de los decoders del robot; se obtiene ms precisin con el tipo ploc La estructura main es la principal de todo programa, empieza con la palabra main y al final del programa end main. Programa No 1 teachable cloc a,b main cloc a,b.....z,a1.... a xx, [10] puntos, etc...... ploc m,n,p

;; define el segmento principal, comienzo de todo programa

;; Es conveniente poner comentarios cuando se realiza y ;;Estructura un programa para una mejor comprensin , lo ;;cual se hace poniendo dos puntos y comas seguidos (;;), y a ;;continuacin los comentarios deseados ready() move (a) move (b) ready() ;; comandos con dos parntesis al final

;;Fin del programa

end main

;; fin del segmento principal

Esta es la estructura bsica de los programas, con la cual debe contar todo programa para interactuar con la interface del robot

4.2.-CREANDO UN PROGRAMA CON EL ROBCOMM3 Dentro de un programa la sintaxis de los comandos cambia, es necesario aadirle dos parntesis, para la creacin de ellos se debe de hacer lo siguiente: 1.-Abra el ROBCOMM3, En el men File seleccione la opcin de New, o haga un clic en el icono New Doc. Aparece la pantalla siguiente:

ICONO NEW DOC

2.-Edite el programa. Comience a escribir su programa fuente, al terminar gurdelo con un nombre procurando ponerle la extensin r3.

3.-Compilar el programa escrito. Seleccione del men application la opcin compile, o haga un clic con el Mouse sobre el icono compile.

ICONO COMPILE

Despus de compilar, si no existe ningn error en el programa fuente, se enviara un mensaje en la siguiente pantalla.

En el caso de errores saldr el tipo de error y la lnea en la cual se encuentra el error.

4.-Creando una Aplicacin. Una vez salvado el programa, es necesario crear una aplicacin que sirve de vinculo para que trabaje el robot, valla a la ventana del men aplicacin Selecciona new app, pngale el mismo nombre del archivo fuente

Verifique en el Men aplicacin setup que todas las lneas deben de estar llenas con el mismo nombre como se ve en la siguiente pantalla.

5.-Cargando el programa en el controlador El programa una vez compilado se queda en la PC por lo que es necesario mandar el archivo objeto al controlador, para ello es necesario realizar el procedimiento siguiente: Haga un clic con el Mouse en el icono send app, o Desde el men application, seleccionar send, o desde la ventana del editor, haciendo clic en el botn derecho del Mouse se despliega un men donde se selecciona send.

6.- Una vez que se tiene el programa, que este ha sido compilado y enviado al controlador y que las posiciones han sido verificadas o grabadas, se procede a ejecutar el programa de la siguiente forma: Desde el teach pendant, se selecciona la aplicacin, y se corre el programa con la opcin run confirmando la ejecucin. Desde la PC. Dentro del Robcomm3 y una vez que aparece el prompt se selecciona la aplicacin que fue grabada, cuando aparece la aplicacin se teclea run y se le da enter ejecutndose asi el programa. Cuando el proceso de Crear programa fuente, Compilar y Crear aplicacin se ha terminado se deben de tener tres archivos en el directorio de trabajo, que son los siguientes: nombre.r3 Programa fuente nombre.app Aplicacin (archivo de enlace) nombre Archivo Objeto (aplicacin de terminal) 4.3.-COMANDOS QUE SOLO FUNCIONAN EN UN PROGRAMA Hay un conjunto de comandos que solo funcionan dentro de un programa, la tabla siguiente muestra algunos de ellos. SINTAXIS delay(#) finish() Printf() SIGNIFICADO Espera el tiempo especificado por # en milisegundos Le da fin la instruccin anterior antes de ejecutar la siguiente Manda a Imprimir en la pantall Programa No 2 Construya un programa que realiza movimientos de los ejes del robot, como el que se da a continuacin , ejecute primero los movimientos antes que lo haga el programa. main ready() speed(40) joint(1,-170) ;; Moverse Eje # 1 170 grados en el sentido de las manecillas finish() delay(3000) ;; Espera dos segundos joint(1,340) finish() delay(3000) ;; Espera dos segundos

joint(1,-170) ;; Regresa a la posicin Inicial finish() delay(3000) joint(2,-90) ;; Moverse Eje # 2 finish() delay(3000) ;; Espera dos segundos joint(2,180) finish() delay(3000) joint(2,-90) finish() delay(3000) joint(3,-24) ;; Moverse Eje # 3 finish() delay(3000) joint(3,204) finish() delay(3000) joint(3,-180) finish() delay(3000) joint(4,-180) ;; Moverse Eje # 4 finish() delay(3000) joint(4,360) finish() delay(3000) joint(4,-180) finish() delay(3000) joint(5,-104) ;; Moverse Eje # 5 finish() delay(3000) joint(5,208) finish() delay(3000) joint(5,-104) finish() delay(3000) joint(6,-180) ;; Moverse Eje # 5 finish() delay(3000) joint(6,360) finish() delay(3000) joint (6,-180) finish() delay(3000)

end main 4.4.-LAS VARIABLES EN RAPL3 En el Rapl3 los nombres de las variables pueden ser de cualquier longitud, sin embrago los primeros 32 caracteres son los importantes. Nmeros y guin bajo pueden ser utilizados como primer carcter en un nombre. Los tipos de variables se muestran en la siguiente tabla: Smbolo Ninguno % $ Guin bajo (_) # Tipo Entero Flotante Cadena Cloc(cartesiano) Ploc(punto de precisin)

Esto es importante cuando queremos asignar desde la terminal un tipo de variable deseada.

Asignacin de variables Las variables que son asignadas dentro del programa Rapl3, pueden ser asignadas ya sea en la declaracin de lnea, o en cualquier parte del programa. La asignacin de una variable ocurre cuando la variables es cargada con un valor actual. Las variables del tipo teachable, le pueden ser asignados valores en el prompt de ash, usando el comando set. Para asignar los valores a las variables se usa el operador =, ejemplo: Prueba> set A_VALOR=5 Rapl3 soporta la asignacin de valores en codigo ASCII para caracteres, usando el carcter actual encerado entre comillas simples, ejemplo: Char =A

Variables del tipo teachable Las variables de este tipo son aquellas que son declaradas en el programa Rapl3 y corresponden a posiciones del robot. Para crear este tipo de variables, se debe de usar la palabra teachable antes de la variable que se est declarando. La asignacin de la variable va a ser suministrada por el usuario desde la terminal antes de correr el programa. Las variables teachable son declaradas al comienzo del programa principal o bien en un subprograma. Esta variable es global por naturaleza, todos los subprogramas y el programa

principal de cualquier archivo van a compartir el valor de esas variables Este tipo de variables no pueden ser declaradas y a la vez asignarles un valor o inicializarlas. Las variables teachables pueden ser de dos tipos, cloc ( cartesiana ) o ploc( precisin), si no se declara el tipo por default es cloc. Otra manera de asignar valores a variables que no cambiarn su valor, y para una mejor comprensin al utilizarlas, es darle valores predeterminados a estas variables definindolas desde el comienzo de los programas con la herramienta (.include), como se muestra a continuacin. .define alta 100 .define media 40 Con esto definido en un programa se puede enviar las ordenes siguientes. speed(alta) move(a) speed(baja) move(b) 4.5.-ESTRUCTURA PROGRAMATICA IF ELSE-ENDIF La sintaxis de esta estructura funciona de la siguiente forma: If CONDICION ...........Comandos ........... ............ ............ else ...........Comandos ........... end if Nota: Todas las condiciones de igualdad en cualquier estructura programatica llevan un doble signo igual. Si se cumple la CONDICION, se ejecutan los comandos de abajo hasta antes del else, y luego se sigue con los que estn debajo del end if , en caso de que la condicin no se cumpla, se ejecutan los comandos debajo del else y luego se sigue con los que estn debajo del end if. El elemento else, no es necesario si no se va a ejecutar ningn comando en el caso de que no se cumpla la condicin. Tambin es posible utilizar elseif condicin, tantos como se deseen. 4.6 CICLOS CONDICIONALES Una de las herramientas mas poderosas en la programacin de cualquier lenguaje, son los ciclos, que permiten realizar un conjunto de instrucciones las veces que se desee. Ciclo Do until La sintaxis de esta estructura es: do ...........Instrucciones

........... ............ ............ Until CONDICION Inicia con la palabra do y se ejecutan las instrucciones que estn despus del do y hasta antes del until, todas las veces que sea hasta que la condicin sea verdadera, pero, si se llega por primera vez al ciclo do y la condicin es verdadera, solo se ejecuta el ciclo de ordenes en una sola ocasin, veamos el siguiente ejemplo:

Programa No 3 teachable cloc a,b ;; Declaracin de variables int c=1 ;; Declaracin de una variable entera main ready() do if c >= 3 move(a) finish() delay(3000) else move(b) ;; Se mover al punto b para c= 1 c = 2 finish() delay(3000) end if c=c+1 ready() finish() delay(3000) until c>5 end main Imprimir en pantalla Imprimir mensajes en la pantalla de la PC, es til para depurar programas, enviar avisos, y poder saber que esta haciendo el programa en los momentos que uno desee. El comando para realizar esto es printf

La expresin que se quiere que salga en pantalla se debe de encerrar entre comillas, como la siguiente: Printf(el robot esta trabajando) Se puede utilizar un salto de lnea aadiendo un \n, ejemplo Int a =12 Printf( el valor de a es {}\n,a);;esta lnea se imprimir en la pantalla como: ;; el valor de a es 12

Programa No 4 Main int i teachable cloc a,b grip_open() speed(80) i=1 do printf("ENTRANDO AL DO UNTIL I = {}\n",i) delay(3000) speed(30) move(a) printf("MOVINDOSE AL PUNTO a{}\n") finish() delay(3000) grip_close() speed(10) move(b) printf("MOVINDOSE AL PUNTO b{}\n") delay(3000) finish() grip_open() i++ if i==2 break ;;Instruccin para Salir inmediatamente del ciclo end if until i> 3 end main

Ciclo while ..... end while La sintaxis de esta estructura es : while CONDICION ........instrucciones

........ ........ end while Este ciclo se repetir todas las veces que sean necesarias mientras la condicin sea verdadera, si se llega al while por primera vez y la condicin es falsa, no se ejecutan ninguna de las instrucciones que estn dentro, se empiezan a ejecutar las que estn despus del end while; Como se ver en el siguiente ejemplo:

Programa No 5 teachable cloc a,b int c = 0 .define alta 50 .define media 30 .define baja 10 main speed(baja) while c<5 c = c+1 ;; Se puede emplear c++ printf(Iniciando el Ciclo C = {}\n,c) ready() if c== 2 speed(media) end if if c== 4 speed(alta) end if move (a) printf(movindose al punto a, {}\n) move (b) printf(movindose al punto b, {}\n ,c) end while ready() end main

Variables Dimensionadas:

En muchas ocasiones se requiere que una o ms variables difieran solamente por el subndice para una mejor manipulacin de ellas, y por la necesidad de no estar definiendo tantas variables, estas variables dimensionales, se definen de la siguiente manera: teachable cloc [5] a Este tipo de variables es comn asociarlas con los ciclos for que veremos a continuacin.

CICLO for VARIABLE = #1 to #2 ....... end for La sintaxis de esta estructura es la siguiente: for VARIABLE = #1 to #2 ........instrucciones ........ ........ end for Este ciclo se repetir tantas veces como la cantidad que hay de #1 a #2, esto es la variable toma el valor de #1 y se ejecutan las instrucciones dentro del for. Y automticamente se va incrementando la variable de uno en uno y en cada caso se ejecuta el ciclo, hasta que la VARIABLE llegue a #2, se sale del ciclo y se continua con las instrucciones que estn despus del end for. Programa No 6 teachable cloc [4] a teachable cloc b int c main ready() for c = 0 to 3 printf(Movindose al punto a[{}]\n,c) move (a[c]) finish() delay(2000) grip_open() printf(movindose al punto b, {}\n) move (b) finish() delay(2000) grip_close() end for ready()

end main

4.7 CICLOS INFINITOS Este tipo de ciclos no tienen forma en su estructura principal, alguna forma para saber cuando terminar, esto hace que se ejecuten indefinidamente hasta que el programa sea abortado(CTRL Z), o paro de emergencia, o en su defecto ayudarse con la estructura if para romper el ciclo con break CICLO etiqueta goto etiqueta Este ciclo no soporta la instruccin break, solo se puede salir de el externamente La sintaxis de esta estructura es la siguiente: Etiqueta:: .............. Instrucciones .............. .............. .............. .............. goto etiqueta El ciclo empieza en etiqueta, ejecutndose todas las instrucciones subsecuentes, llega al goto etiqueta y retorna debajo de etiqueta para iniciar un nuevo ciclo, a menos que haya un paro de emergencia, o que se aborte el programa. Programa No 7 teachable cloc [3] a main ready() speed(50) regreso1:: move (a[0]) move (a[1]) move (a[2]) goto regreso1 end main Nota: se puede abortar el Programa con Ctrl Z.

CICLO loop end loop Este tipo de ciclos infinitos, fcilmente puede utilizarse como un ciclo condicional, rompindolo mediante una condicin que puede ser de la estructura if-end if, como veremos mas adelante, la sintaxis de esta estructura es la siguiente: Loop .......Instrucciones ....... ....... end loop Inicia con el loop ejecutndose todas las instrucciones hasta antes del end loop, as indefinidamente a menos que sea forzado a terminar Programa No 8 teachable cloc a,b,c,d .define alta 80 .define media 40 .define baja 20 main ready() int e =0 loop speed(baja) move (a) speed(media) move (b) speed(alta) move (c) delay(3000) e = e+1 if e > 5 break end if end loop move(d) delay(5000) ready() end main

4.8.-ESTRUCTURA case variable of # Este tipo de estructura se usa en lugar de muchas condiciones del tipo if_endif y con un mayor potencial , la sintaxis es la siguiente: Case Variable of: 1 ..........Instrucciones of: 2,3.. .......... of 7 to 9: .......... of 10 to 12, 13 to 16, 19: .......... else .......... end case Las instrucciones que se ejecutaran dependern del valor de la variable, y en cada caso solo una de ellas, debajo de else estarn las instrucciones que se ejecutaran para todos los casos no contemplados en los case. Programa No 9 teachable cloc a,b,c,d main int e=1 string[23] mensaje1 mensaje1 = "El valor de e = {},\n" ready() printf("Los case son 16 \n") loop delay(3000) case e of 1: printf("al punto a ") printf(mensaje1,e) move(a) finish() delay(2000) ready() of 2,3,5: printf("al punto b ") printf(mensaje1,e) move(b)

finish() delay(2000) ready() of 6 to 8: move(c) finish() delay(2000) ready() printf("al punto c de 6 a 8 e ={}\n",e) of 9 to 10, 12 to 14, 16: move(d) finish() delay(2000) ready() printf("al punto d de 9,10 12,13,14,16, e ={}\n",e) else printf("Nada ") printf(mensaje1,e) delay(2000) end case e = e+1 if e >17 break end if end loop ready() finish() printf("Fin del programa.....Adios\n") end main 4.9.-SUBRUTINAS Otra caracterstica especial de este tipo de lenguajes, es la compilacin por mdulos o separada, lo que permite que se puedan definir subrutinas separadas del programa principal y utilizarse llamndolas cuando sea necesario; estas subrutinas por lo general contienen partes de un programa o secuencia fijos, es decir, que no varan aunque la secuencia de su utilizacin as como otras acciones se puedan controlar desde el programa principal. Para la utilizacin de subrutinas en un programa, es necesario incluirlas en las declaraciones que va a usar el programa principal por medio de la funcin .include tal como se muestra a continuacin; y el formato de los archivos que contengan las subrutinas, no debern contener la funcin main, y en vez de esto, tener como encabezado y fin de las subrutinas, las sentencias sub nombre() y end sub respectivamente.

Programa No 10 Cierre aplicacin nexo y programa y cree un conjunto nuevo con este listado, que se llame General.r3 teachable cloc a,b .include rutina1.r3 .include rutina2.r3 main ready() move(a) printf("movi a punto a y espera de 3 segn\n") finish() delay(3000) printf("Ejecutando Rutina 1 y espera de 5 segn") rutina1() ;; Ejecucin de Rutina 1 printf("termina la Rutina 1, se mueve al punto b y espera de 3 seg\n") move(b) finish() delay(3000) printf("ejecutando Rutina2 y espera de 5 seg\n") rutina2() printf("termina la Rutina 2, se mueve a b y espera 3 seg\n") move(b) delay(2000) finish() ready() printf("Termina el programa\n") end main Abra otro archivo y escriba la siguiente subrutina y slvela con el nombre de rutina1.r3 teachable cloc c sub rutina1() finish() delay(3000) move(c) printf("se movi al punto b en Rutina1 y espera de 3 seg\n") finish() delay(3000) end sub

De nuevo abra un nuevo editor y escriba la siguiente subrutina y slvela con el nombre de rutina2.r3 teachable cloc d sub rutina2() finish() delay(3000) move(d) finish() printf("Se movi al punto a en Rutina 2 y espera de 3 seg\n") move(a) delay(3000) finish() end sub

RECOMENDACIONES A LA HORA DE PROGRAMAR: La mejor forma de programar, es interactuando directamente con el robot e ir asignando las variables aun sin haber realizado el listado del programa; esto permite el ir moviendo el robot con los comandos de terminal o con el teach pendant e ir asignando la secuencia de variables que se utilizara en el programa; a su vez y puede ser de forma paralela, el ir creando el listado del programa conforme a los movimientos que se van realizando y a las variables que se van asignando. Desde la pantalla de terminal, cuando se crea una nueva aplicacin asigne las nuevas variables directamente al controlador, por medio del comando new a (para asignar variables tipo cartesiano se agrega el smbolo de guin bajo _ , y para variables del tipo de precisin, el smbolo de numero # ) En la pantalla de terminal, teclee el comando list, para observar las variables existentes (observara que las variables aparecen precedidas del smbolo * , lo que indica que no han sido asignadas posiciones a estas variables) mueva el robot a las posiciones deseadas con los comando joint 1,100, depart, appro y asigne las posiciones a las variables por medio del comando here. teclee de nuevo el comando list y observe.

CAPITULO V RECONOCIMIENTO DE SEALES DISTRIBUCIN FSICA DE PUERTOS DE ENTRADAS Y SALIDAS DIGITALES Y CONECTORES.

PUERTO DE ENTRADAS / SALIDAS DIGITALES GPIO El controlador C500C del robot cuenta con un juego de entradas y salidas digitales, con las cuales poder interactuar en tiempo real con el medio externo y poder monitorear o controlar dispositivos externos; este controlador cuenta con 16 entradas digitales opto aisladas, 4 salidas con contactos de relevador y 12 salidas opto aisladas. 5.1.-CONSIDERACIONES EN EL DISEO DE CIRCUITOS Si se va a usar el puerto GPIO, se deben tener en cuenta las siguientes consideraciones. Para los robots A255 y A465, se puede usar tanto la fuente interna de 24 VDC que provee el equipo o una externa que conecte al sistema La capacidad de corriente que puede manejar la fuente interna es de mximo 1 Ampere, por lo que si la aplicacin que se va a manejar es de mayor capacidad, use una fuente externa. Las salidas opto aisladas son de baja capacidad en corriente, manejan hasta 50 mA cada una de ellas. Las salidas relevadas manejan hasta 3 Ampers cada una. Todas las salidas de relevador, estn conectadas a un punto en comn, y estn protegidas por un relevador que se encuentra en el panel frontal. PRECAUCION.- Apague el interruptor principal del controlador antes de conectar cualquier alambre al controlador. Los diagramas del patillaje correspondientes se muestran en las pginas siguientes:

REALICE LA SIGUIENTE PRACTICA Aplique el comando shutdown now a la pantalla de terminal para apagar el robot, Cierre todas las aplicaciones y el programa robcomm3 y apague el controlador. Del conector DD-50, conecte las terminales 1 y 3, o bien la 2 y 4, para utilizar la fuente interna de 24 volts de DC; tambin conecte las terminales 47 a la 49, o bien la 48 a la 50, para cerrar el lazo a tierra de los circuitos internos del GPIO Conecte el cable tipo listn al conector DD-50 y por el otro extremo al controlador del robot Encienda el controlador y abra la pantalla de terminal del robcomm3, abra cualquier aplicacin existente (ash xxxxx) de la pantalla terminal Introduzca el comando input 1, haga lo mismo con las 16 entradas y observe. Con mucho cuidado, conecte un alambre largo a la terminal 49 50 del conector DD-50 y a la terminal 5 del mismo; aplique el comando input 1 y oberve, retrelo de la terminal 5 y vuelva a verificar el estado de la entrada 1 y haga lo mismo con algunas otras entradas. NOTA: TAL COMO SE OBSERVO, LA SALIDA SE HACE VALIDA (VALOR DE 1) CUANDO SE CONECTA A TIERRA LA ENTRADA CORRESPONDIENTE Ahora, con la ayuda de un multmetro ajustado para medir voltaje de DC, en la escala que soporte al menos 24 VDC, conecte la terminal positiva del multmetro a la terminal 1 2 del conector DD-

50, y la negativa a la terminal 21, observe la lectura del multmetro; ahora, aplique a la pantalla de terminal el comando output 1,1 (formato: output #salida, valor lgico) y observe; ahora el comando output 1,0 y note el cambio de estados de aprox. cero Volts a aprox. 24 VDC que es el voltaje de la fuente interna del controlador. Haga lo mismo con algunas salidas de la 2 a la 12. NOTA: CUANDO SE USEN LAS SALIDAS DIGITALES, DE PREFERENCIA UTILICE YA SEA LA FUENTE INTERNA O UNA EXTERNA, DE MAXIMO 24 VDC Y LAS CARGAS O DISPOSITIVOS A ENCENDER (TAL COMO UN RELEVADOR) DEL MISMO VALOR DE VOLTAJE. Para el caso de las salidas de la 13 a la 16, existe la diferencia de que estas son contactos de relevador, con un punto en comun. Para verificar, ajuste el multmetro para medir resistencia (si tiene la capacidad de tono audible cuando se detecta resistencia cercana a cero, actvela); con mucho cuidado, conecte una de las terminales del multmetro a la terminal 43 44 del conector DD-50, y la otra a la terminal 36 del DD-50; introduzca el comando output 13,1 y observe la lectura del medidor; despus de el comando output 13,0 y observe; conecte ahora de la terminal 43 44 a la 35 y repita los dos comandos anteriores. Con estas herramientas, se pueden realizar programas mas complejos que involucren el uso de entradas y salidas digitales, para poder controlar dispositivos externos, o coordinar acciones determinadas dependientes de esos dispositivos, a ambas cuestiones.

REALICE LA SIGUIENTE PRACTICA Abra una pantalla de edicin de programas nuevos y teclee el siguiente programa: teachable cloc a,b,c main loop while input(16)==1 printf("activada la entrada 16 y espero seleccin de entrada\n") delay(5000) finish()

if input(1)==1 move(a) finish() printf("entrada uno conectada, muevo posicin a\n") printf("y activo salida 13 por 5 segundos a\n") output (13,1) delay(5000) output_set (13,0) end if if input(2)==1 move(b) finish() printf("entrada dos conectada, muevo posicin b\n") printf("y espero a que active la entrada 3\n") while input(3)==0 end while printf("entrada 3 pulsada, continuo con el programa\n") end if if input(4)==1 move(c) finish() printf("entrada cuatro conectada, muevo posicin c\n") end if if input(15)==1 printf("entrada 15 conectada, termino programa en 5 seg\n") delay(5000) finish() goto final end if end while printf("no esta activada la entrada 16 y espero 5 seg\n") delay(5000) end loop final:: printf("fin del curso...... felicidades y buen viaje\n") end main Salve el programa, cree la aplicacin y el nexo, asigne las tres posiciones y ejecute el programa, siguiendo cuidadosamente el diagrama de conexiones y las instrucciones del instructor, si tiene cualquier duda, no proceda con el paso siguiente hasta estar seguro de lo que va a hacer.

Realice modificaciones y observe

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