ayuda con los codigos en c

isrrosky
17 de Junio del 2008
tengo problemas con estos programas no me corren....... podrian ayudarme estos programas son en codigo c. algunos los tengo en algoritmo, otros ya los tengo ya en c.


1. Problema de detención en un semáforo

Escribir el algoritmo, diagrama de flujo y programa que describe las acciones que el conductor realiza ante el estado verde, amarillo o rojo de un semáforo. Tener en cuenta, que ante una luz amarilla, el conductor acelerará si es arriesgado, o desacelerará si es que es prudente.
leer luz

SELECCION (luz)

VERDE : SI (estaDetenido == false) ENTONCES
parte()
SINO
pasa()
FIN SI

AMARILLA : SI (conductorEsArriesgado == true) ENTONCES
acelerarara()
SINO
desacelera()
frena()
FIN SI

ROJA : SI (estaDetenido == false) ENTONCES
desacelera()
frena()
SINO
espera()
FIN SI

FIN SELECCION

Variables
luz : {VERDE , AMARILLA , ROJA}
estaDetenido : {true,false



2. Problema de compra en función de la calidad de un lote de productos


Se requiere implementar un algoritmo, diagrama de flujo y programa que permita registrar la calidad de un lote de productos, para agilizar el proceso de compra.

El sistema consiste, en un lector de calidad que va leyendo mediante sensores a un producto dejado a través de una correa transportadora, para transmitir a continuación los datos a un software especial, depositado en un computador, que entrega hacia afuera uno de los siguientes estados numéricos:

0 : Producto MALO
1 : Producto DEFECTUOSO
2 : Producto BUENO

Especificaciones

a) Los datos que llegan en forma iterativa (mientras no se haya acabado el lote de productos a revisar), son rescatados por el método test().

b) El térrmino de la revisión está determinado cuando el método fin() retorne el valor true.

c) El algoritmo debe llevar un conteo de cuántos productos corresponden a cada estado {MALO : 2 , DEFECTUOSO : 5 , BUENO : 43 }, para posteriormente aplicar un cálculo de porcentaje.

d) Inicialmente no se sabe la cantidad total de productos del lote, por lo tanto es fundamental que se implemente un contador para los cálculos posteriores.

e) El precio original de compra del lote, tiene que ser ingresado por el usuario. Después del análisis, se deberá imprimir según los criterios el precio propuesto de compra.

Una vez terminado el proceso de análisis y conteo, se determinará el precio de compra propuesto para el lote en cuestión.

Criterios

1) Si el porcentaje de productos malos es superior al 15%, el lote no se compra (precio <-- 0). En caso contrario, pasar al punto 2)

2) Si el porcentaje de productos defectuosos es menor a un 10%, se compra a un 70% del precio original. En caso contrario, pasar al punto 3)

3) Si el porcentaje de productos buenos es mayor o igual a un 70%, el lote se compra al precio original. En caso contrario, se estaría comprando a un 60% del precio original.
INICIO
N <-- 0 /* cantidad de productos analizados */
contMalos <-- 0
contDefect <-- 0
contBuenos <-- 0
precio <-- 0 /* precio en función del análisis */

leer precioInicial

MIENTRAS (fin() != true) HACER

calidad <-- test()

SELECCION (calidad)

0 : contMalos <-- contMalos + 1
1 : contDefect <-- contDefect + 1
2 : contBuenos <-- contBuenos + 1

FIN SELECCION

N <-- N + 1

FIN MIENTRAS

SI (contMalos / N > 0.15) ENTONCES
precio <-- 0
SINO
SI (contDefect / N < 0.1 ) ENTONCES
precio <-- precioInicial * 0.7
SINO
SI (contBuenos / N >= 0.7 ) ENTONCES
precio <-- precioOriginal
SINO
precio <-- precioOriginal * 0.6
FIN SI
FIN SI
FIN SI

imprimir(precio)

FIN


3. Problema de los trampolines

Se cuenta con dos trampolines olímpicos, para que una persona pueda realizar una serie de saltos, con tal de terminar parado en el segundo trampolín.
La distancia vertical entre los trampolines, es de 3 metros. Se sabe que siempre el primer salto es de 60 cm (0,6 mts).
Además, se sabe que en cada salto se supera el rendimiento del salto anterior en un 30%.

Determinar: cantidad de saltos necesarios para alcanzar el segundo trampolín y la altura máxima que se llega con respecto al primer trampolín. Además se necesita saber la altura alcanzada en cada salto.

Ejemplo :

separación entre trampolines : 3.0
porcentaje de aumento (0..1) : 0.3

cs altura
-- ------
1 0.6
2 0.78
3 1.014
4 1.3182
5 1.7137
6 2.2278
7 2.8961

Cantidad de saltos : 8
Altura maxima alcanzada : 3.765

seguir(1)/salir(0) : 0

#include<stdio.h>
#include<stdlib.h>
void main()
{
int cs = 1;
float h = 0.60;
int seguir = 1;
float sep=0,aumento=0;
do
{
h = 0.6;
cs = 1;
printf("nnseparacion entre trampolines : ");
scanf("%f",&sep);
printf("porcentaje de aumento (0.1) : ");
scanf("%f",&aumento);
aumento += 1.0;
printf("ntcstalturan");
printf("t--t------n");
( h < sep )
{
printf("t%d t%.2f",cs,h);
cs++;
h *= aumento;
}
printf("ntCantidad de saltos : %dn",cs);
printf("tAltura maxima alcanzada : %.2fn",h);
printf("nttseguir(1)/salir(0) : ");
scanf("%d",&seguir);
} while (seguir == 1);
}





4. Problema del electrón en los anillos

a ) Un electrón se mueve en un conjunto de 10 anillos, con una velocidad constante en cada uno de ellos . Una característica de la trayectoria, es que una vez que completa el recorrido en un anillo, cambia de estado pasándose al anillo siguiente o más cercano al centro, con una velocidad 1.12 veces mayor a la anterior.

El electrón, después de recorrer el último anillo y llegar teóricamente al centro (k = 0), sale disparado perpendicularmente al radio del anillo, a una velocidad igual al doble de velocidad del radio uno (k = 1) por el último radio al cuadrado.

Además, la trayectoria cuenta con la característica que el radio de cada anillo, es un 35% menor con respecto al anterior, siendo el radio inicial de 5.0 nm.

Finalmente, se sabe que el electrón tiene una velocidad inicial de 2.0 ns.

Datos

Para k : 1 , ... , 10 se tiene que

radio de cada anillo : radio_k-1 = radio_k * 0.65

Velocidad constante en cada anillo : v_k-1 = 1.12 * v_k

Tiempo_k = Distancia_k / Velocidad_k

radio inicial = 5.0 [nm]

velocidad disparo = 2 * v_1 * (1 + radio)^2

Determinar

Velocidad, distancia y tiempo en recorrer cada anillo, además del tiempo acumulado para recorrer los 10 anillos y la velocidad de disparo del electrón.

El algoritmo debe generar la siguiente salida :

ingrese numero de anillos : 10
ingrese radio inicial : 5.0
ingrese velocidad inicial : 2.0

k radio Distancia Velocidad Tiempo
--- ----- --------- --------- ------
10 5.0 31.415 2.0 15.707963267948966
9 3.25 20.42 2.24 9.11622868229181
8 2.112 13.273 2.508 5.2906684316872115
7 1.373 8.627 2.809 3.07047721481847
6 0.892 5.607 3.147 1.781973383600005
5 0.58 3.645 3.524 1.0341809815535743
4 0.377 2.369 3.947 0.6001943196516281
3 0.245 1.54 4.421 0.3483270605121055
2 0.159 1.001 4.951 0.20215409761863268
1 0.103 0.65 5.546 0.11732157451081357


Velocidad disparo : 14.152
tiempo total : 37.26948901419321


#include <stdio.h>
#define PI=3.14
void main(void)

main()
float radio=5.0
float velocidad =2.0;
int distancia =0;
int tiempo=0;
int tiempoAcum =0;

printf("k radio Distancia Velocidad Tiempo");
printf("--------------------");

while (k > 0)
{
distancia = 2 * PI * radio;
tiempo = distancia / velocidad;
tiempoAcum = tiempoAcum + tiempo;
printf ( "%d ", k );
printf ( "%d ", radio );
printf ( "%d ", distancia );
printf ( "%d ", Velocidad );
printf ( "%d ", tiempo );
velocidad = 1.12 * velocidad:
radio = radio * 0.65;
k= k - 1
}

velocidad = 2 * velocidad * (1 + radio) * (1 + radio)

printf("Velocidad disparo : %d " + velocidad);
printf("tiempo total : %d " + tiempoAcum);
}