Sunteți pe pagina 1din 6

Cdigo Espaguetti; Es un trmino despectivo en el mbito de la

programacin sobre un cdigo enrevesado sin necesidad,


particularmente por las ramificaciones de una parte del cdigo con otro.
A veces el spaghetti code es el resultado de mltiples modificaciones de
un cdigo antiguo.

Otra analoga de que se llame spaghetti es cuando se realiza un cambio


en una parte del cdigo y se tienen efectos impredecibles sobre el resto
del programa, como cuando halas un tira de espagueti y afecta a las
otras: Un total enredo!

Hay tcnicas como la ocultacin de datos que se usa a menudo para


prevenir problemas similares en la codificacin. Los lenguajes de
programacin de nivel alto, como COBOL y FORTRAN, dependen de la
habilidad y la diligencia del programador para que su cdigo se
convierta en un espagueti. Un subconjunto conocido como programacin
estructurada impone una estructura dentro del cdigo y se ha
desarrollado para eludir tambin estos problemas.

Ejemplos;

#include <iostream>

#include <stedio.h>

Using namespace std;


Int main()
{
int opcion =0 n1, n2, total;
do
{
Clrscr ()
Goto xy (30,22);
Cout<< 1. Suma<<endl;
Goto xy (30,23);
Cout<< 2. Resta<<endl;
Goto xy (30,24);
Cout<< 3. Multiplicacion<<endl;
Goto xy ( 30,25);
Cout<< 4. Division<<endl;
Goto xy (30,26);
Cout<< 5. Salir<<endl;
Goto xy (30,27);
Cout<<Elija su opcion<<endl;
Cin>>opcin;
Switch
{
Case 1;
{
Cout<< suma<<endl;
Cout<<Ingrese numero:<<endl;
Cin>>n1;
Cout<<Ingrese numero::<<endl;
Cin>>n2;
Total= n1+n2;
Cout<<El total es:<<total<<endl;
Break;

Casse 2;
Cout<< resta <<endl;
Cout<<Ingrese numero:<<endl;
Cin>>n1;
Cout<<Ingrese numero::<<endl;
Cin>>n2;
Total= n1-n2;
Cout<<El total es:<<total<<endl;
Break;

Casse 3;
Cout<< multiplicacion <<endl;
Cout<<Ingrese numero:<<endl;
Cin>>n1;
Cout<<Ingrese numero::<<endl;
Cin>>n2;
Total= n1*n2;
Cout<<El total es:<<total<<endl;
Break;

Casse 4;
Cout<< division <<endl;
Cout<<Ingrese numero:<<endl;
Cin>>n1;
Cout<<Ingrese numero::<<endl;
Cin>>n2;
Total= n1/n2;
Cout<<El total es:<<total<<endl;
Break;
Case 5;
Cout<< Gracias<<endl;
Break;
}
}
While (opcion= 5);
Getchar ();
Return 0;
}
/* Ejemplo de Cdigo Espagueti*/
02.// Controlar que la puerta est cerrada
03.main() {
04.while(TRUE) {
05.while (!(puerta_cerrada()))
06.;
07.// Empezar con el llenado de agua
08.while (!(NIVEL_AGUA_OK)) {
09.if (puerta_cerrada()) {
10.valvula_agua(ABRIR);
11.compartimento_detergente(ABRIR);
12.}
13.else
14.valvula_agua(CERRAR);
15.}
16.
17.//Calentar el agua
18.if (SELECCION_AGUA_CALIENTE) {
19.while (tiempo <= TIEMPO_CALENTAMIENTO) {
20.if (puerta_cerrada())
21.calentador(ON);
22.else
23.calentador(OFF);
24.++tiempo;
25.}
26.}
27.
28.// Empezar ciclo de lavado
29.tiempo = 0;
30.while (tiempo <= TIEMPO_LAVADO) {
31.if (puerta_cerrada())
32.ciclo_lavado(ON);
33.else
34.ciclo_lavado(OFF);
35.++tiempo;
36.}
37.}
38.}

LICEO HUEHUETECO

Grado: 5to P.C

Curso: Programacion

Catedratico: Wilkince Oziel

Tema:
Programa Espaguetti

Nombre: Jiexer Danielito Prez Xutuc


Fecha: 09/02/2017

CONCLUSIONES
El Cdigo Espagueti es el estilo de programacin que identifica a todo
principiante en el mbito de la programacin de sistemas embebidos
(microcontroladores / microprocesadores). Todos hemos escrito Cdigo
Espagueti en mayor o menor grado cuando dbamos nuestros primeros
pasos en la programacin de microcontroladores.

Para llegar a ser un buen ingeniero de software para sistemas


embebidos de tiempo real, es necesario estudiar, practicar y dominar
progresivamente el diseo e implementacin con patrones avanzados de
programacin, eso hace de uno un programador ms competente. Los
diferentes patrones son simplemente herramientas en la caja de
herramientas de un ingeniero o desarrollador de software y no existe la
herramienta perfecta que sea ideal para todas las aplicaciones.

Algunas herramientas son ms sofisticadas que otras, sin embargo no


todas las aplicaciones se benefician de los SOTR, sobre todo cuando hay
muchos factores tcnicos, financieros y operativos que considerar. Para
las aplicaciones ms pequeas podra bastar simplemente un buen
diseo con Mquinas de Estado Finito, un patrn Plano Secundario /
Plano Principal o un Planificador de Tareas. El Cdigo Espagueti,
Definitivamente no tiene lugar en los diseos profesionales.