martes, 20 de mayo de 2008

ACS LOGO






aros:
repeat 360 [fd 1 rt1]
repeat 180 [fd 1 rt1]
rt 180
repeat 360 [fd 1 rt1]
repeat 180 [fd 1 rt1]
rt 180
repeat 360 [fd 1 rt1]
lt 90
repeat 360 [fd 1 lt1]
repeat 180 [fd 1 lt1]
rt 180

repeat 360 [fd 1 lt ]

lunes, 12 de mayo de 2008

contadores

El contador es un elemento capaz de llevar el cómputo de las activaciones de sus entradas, por lo que resulta adecuado para memorizar sucesos que no tengan que ver con el tiempo pero que se necesiten realizar un determinado número de veces.
Contador
Contador


En la figura de la derecha puede verse el esquema de un contador, Ci, bastante usual, donde pueden distinguirse las siguientes entradas y salidas:


* Entrada RESET (R): Permite poner a cero el contador cada vez que se activa. Se suele utilizar al principio de la ejecución asignándole los bits de arranque, de modo que quede a cero cada vez que se arranca el sistema.

* Entrada PRESET (P). Permite poner la cuenta del contador a un valor determinado distinto de cero, que previamente se ha programado en Cip.

* Entrada UP (U): Cada vez que se activa produce un incremento en una unidad de la cuenta que posea en ese momento el contador.

* Entrada DOWN (D): Cada vez que se activa produce un decremento en una unidad de la cuenta que posea en ese momento el contador.

* Salida FULL (F): Se activa al producirse un desbordamiento del valor del contador contando en sentido ascendente.

* Salida DONE (D): Se activa cuando el valor del contador se iguala al valor preestablecido Cip.

* Salida EMPTY (E): Se activa al producirse un desbordamiento del valor del contador contando en sentido descendente.

diagrama de flujo en ciclo for

diagrama de flujo en ciclo while

ciclo WhIlE

Ciclo WHILE

Veamos nuestro primer ciclo: WHILE. Un ciclo se utiliza para ejecutar una seria de instrucciones (o una sola) mientras se cumpla una condición, cuando se deje de cumplir la condición, estas instrucciones se dejarán de ejecutar.

En el código siguiente, se escribe un útil programa que pregunta cuanto es 1 + 1, mientras el usuario no escriba 2 (porque 1 + 1 es igual a 2), el programa no saldrá del ciclo y seguirá preguntando.

//Programa idiota, con ciclo WHILE
#include
using std::cout;
using std::cin;
using std::endl;
int main()
{ // abrimos main
int resultado;
cout << "Ingrese cuanto es 1+1: " << endl;
cin >> resultado;
while (resultado != 2) //Mientras resultado sea distinto de 2
{ // abrimos llave, porque usaremos 2 instrucciones.
cout << resultado << " no es la respuesta correcta, intente de nuevo: " << endl;
cin >> resultado;
} // fin del while.
cout << "Muy bien su resultado es correcto." << endl;
return 0; //terminacion exitosa
} // cerramos main.

Cuando, se introduzca un 2, se continuará con la ejecución del programa.

Ciclo FOR

Con WHILE, puede armarse cualquier tipo de ciclo, pero a veces es útil utilizar otros ciclos que simplifican la escritura de un programa. FOR es un ciclo exacto, lo que nos permite ejecutar las instrucciones del ciclo un número de veces predeterminado. Veamoslo en un programa:

//Ciclo for.
#include
using std::cout;
using std::cin;
using std::endl;
int main ()
{
int hasta;
cout << "Ingrese el numero hasta donde quiere contar: " << endl;
cin >> hasta;
for (int numero = 1 ; numero <= hasta ; numero++) //no abro llaves: es una sola instruccion.
cout << numero << endl; //única instruccion del ciclo
return 0 ;
} //fin de main.

Primero le pedimos al usuario hasta dónde desea contar y lo almacenamos en la variable hasta. Luego viene la siguiente línea:

for (int numero = 1 ; numero <= hasta ; numero++) />

Lo interesante de FOR, es que nos permite en una misma línea:

* Declarar una variable: int numero (variable de control)
* Inicializar la variable: numero = 1
* Plantear la condición lógica del ciclo mientras numero <= hasta ejecutar el ciclo.
* Y por último, ya especificar el incremento de la variable numero++ (si no se incrementara entraría en un ciclo infinito).