Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - magv1991

#1
Buen día,
me gustaría que me ayudaran a pasar un programa hecho en una calculadora Texas Voyage200 a lenguaje C++, por favor

abajo les dejo el código para la calculadora y al final les dejo algunas aclaraciones sobre el codigo

link para visualizar mejor el código
https://onedrive.live.com/redir?resid=50ACFCC6435EB40!1970&authkey=!AILqsYKMc9RuIBQ&ithint=file%2cdocx


hardy()
Prgm
©INGRESE TODO EN UNIDADES, NO IMPORTA EN QUE ORDEN INGRESE LOS DATOS.
DelType "expr"
DelType "func"
DelType "list"
DelType "mat"
ClrIO
Input "numero de circuitos", nc
Input "numero total de tramos", nt
newMat(nt,nc)→t
newMat(nt,nc)→d
newMat(nt,nc)→l
newMat(nt,nc)→km
newMat(nt,nc)→q
newMat(nt,nc)→e
newList(nc) →papa
For j, 1, nc, 1
Input "tramos en el circuito", var
var→〖papa〗_j
For i, 1, 〖papa〗_j, 1
Input "diámetro", var
var→d_(i,j)
Input "longitud", var
var→l_(i,j)
input "factor de perdidas menores", var
var→〖km〗_(i,j)input "caudal", var
var→q_(i,j)
If i>1 or j>1 Then
Dialog
DropDown "la rugosidad cambia?", {"si", "no"}, rug
EndDlog
If rug=1 Then
Input "rugosidad", var
var→e_(i,j)
EndIf
Else
Input "rugosidad", var
var→e_(i,j)
EndIf
If i>1 and j≥1 and rug=2 Then
e_(i-1,j) →e_(i,j)
EndIf
If i=1 and j>1 and rug=2 Then
e_(〖papa〗_(j-1),j-1) →e_(i,j)
EndIf
EndFor
EndFor
1→k
1→j
1→i
Input "viscosidad cinematica", un
While k=1
While j≤nc
newList(〖papa〗_j) →hl
newList(〖papa〗_j) →cociente
While i≤〖papa〗_j
4|q_(i,j) |/(πd_(i,j)^2 ) →v
Disp "velocidad"
Pause v
(d_(i,j) v)/nu→nr
Disp "numero de Reynolds"
Pause nr
0.25/(log⁡(1/3.7(d_(i,j)/e_(i,j) ) +5.74/(nr^.9 )) )^2 →f
Disp "factor de friccion"
Pause f
sign(q_(i,j) )(f l_(i,j)/d_(i,j)  (v^2/(2*9.81m/s^2 ))+〖km〗_(i,j) (v^2/(2*9.81m/s^2 )))→〖hl〗_i
Disp "perdida en el tramo"
Pause 〖hl〗_i
〖hl〗_i/q_(i,j) →〖cociente〗_i
Disp "cociente"
Pause 〖cociente〗_i
i+1→i
EndWhile
Disp "suma de perdidas"
Pause sum(hl)
Disp "suma de cocientes"
Pause sum(cociente)
-sum(hl)/2sum(cociente) →Δq
Disp "Δq"
Pause Δq
1→i
While i≤〖papa〗_j
q_(i,j)+Δq→q_(i,j)
Disp "nuevo caudal"
Pause q_(i,j)
i+1→i
EndWhile
Dialog
DropDown "hay tramos circuito-circuito?", {"si", "no"}, tcc
EndDlog
If tcc= Then
Input "cual tramo?", hugo
Input "con cual circuito?", paco
Input "a que tramo corresponde?", Luis
Dialog
DropDown "que signo le corresponde?", {"+", "-"}, signo
EndDLog
EndIf
If tcc=1 and signo=1 Then
|q_(hugo,j) |→|q_(luis,paco) |
EndIf
If tcc=1 and signo=2 Then
-|q_(hugo,j) |→|q_(luis,paco) |
EndIf
1→i
j+1→j
EndWhile
Dialog
DropDown "desea hacer otra iteración?", {"si", "no"}, k
EndDlog
1→i
1→j
EndWhile
EndPrgm




el For y el While pues si son igual que en el C, creo que el If también
nada más el Input pues es para ingresar un valor
y luego el newMat(i,j) es para hacer una matriz de i renglones y j columnas
el newList(i) hace una lista de i elementos
en donde viene el Dialog, la texas convierte los valores string a valores numéricos, en donde viene

Dialog
DropDown "la rugosidad cambia?", {"si", "no"}, rug
EndDlog

en la texas se abre una pantalla con la pregunta y un menú desplegable, si=1, no=2 y así

y luego en la texas hay que mostrar los valores uno por uno porque si se muestran muchos a la vez no se pueden ver, entonces le puse

Pause hl

para que muestre la variable y el programa se quede en pausa, pero igual y no me interesa que muestre los valores, lo que me interesa es que todos los valores en lugar de mostrarlos que los vaya guardando en un archivo excel

y en donde le puse el sum(hl) es la suma de todos los elementos de la lista hl, ese si no sé si sea igual en C

también hay una función sign(q) para mostrar el signo de esa variable, no sé si en C sea igual

y luego puse una variable string que se llama signo, aclaro para que no se confunda con la función

los valores que están entre barras son valores absolutos, no estoy seguro de cómo se ponga esa función en C

ah y luego puse un valor en metros por segundos cuadrados pero no se si se pueda cargar alguna librería para usar unidades en el C


De verdad si alguien me puede ayudar a pasar este programa a lenguaje C++ se los agradecería mucho
#2
Programación C/C++ / PROBLEMA CON UNA VARIABLE
21 Febrero 2014, 13:53 PM
Hey que  onda, pues tengo este programa que no cambia las variables t3 y t4, toma el valor inicial definido antes del primer while, y necesito que tome el ultimo valor despues del while interno para iniciar el ciclo. Alguna ayuda :P


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

FILE *doc; //usaremos un archivo para guardar los datos obtenidos//

int main(int argc, char *argv[]) {

doc=fopen("posicion del mecanismo 1.txt","w+"); //abrimos y nombramos un archivo de texto//

float r1, r2, r3, r4, t1, t2, t3, t4, f1, f2, dt3, dt4, i, pi;
pi=3.14159265359; //el valor de pi lo usaremos para la conversion de grados a radianes y viceversa//
r1=sqrt(pow(47.5,2)+pow(64,2)); //r1 representa al eslabon fijo y no cambia//
r2=14; //r2 representa al eslabon motriz y no cambia//
r3=80; //r3 representa al eslabon acoplador y no cambia//
r4=51.26; //r4 representa al eslabon salida y no cambia//
t1=atan(64/-47.5)+pi; //t1 representa al angulo de r1 desde las abscisas positivas y no cambia//
t2=45; //t2 representa al angulo inicial de r2 desde las abscisas positivas y varia independientemente//
t3=105*pi/180; //at3 representa la primer aproxiamcion al angulo inicial de r3 desde las abscisas positivas y varia en funcion de t2//
t4=30*pi/180; //at4 representa la primer aproximacion al angulo inicial de r4 desde las abscisas positivas y varia en funcion de t2//
i=1; //i es el numero de iteraciones a realizar del metodo de Newton-Raphson//
printf(" t2\t   t3\t\t   t4\n");
fprintf(doc, " t2\t   t3\t\t   t4\n"); //escribimos los datos en el archivo de texto//
while (t2<=405) //se calcularan los valores reales de los angulos t3 y t4 para valores de t2 desde 45 hasta 360 grados//
{
while (i<=3) //se realizaran 3 iteraciones para determinar el valor real de t3 y t4 para un cierto valor de t2//
{
f1=r1*cos(t1)+r4*cos(t4)-r2*cos(t2*pi/180)-r3*cos(t3); //f1 y f2 representan al vector solucion//
f2=r1*sin(t1)+r4*sin(t4)-r2*sin(t2*pi/180)-r3*sin(t3); //del sistema matricial//
dt3=(f1*cos(t4)+f2*sin(t4))/(r3*(cos(t3)*sin(t4)-sin(t3)*cos(t4))); //dt3 y dt4 representan al vector//
dt4=(f1*cos(t3)+f2*sin(t3))/(r4*(cos(t3)*sin(t4)-sin(t3)*cos(t4))); //incognita del sistema matricial//
t3=t3+dt3; //t3+dt3 representa el valor real de t3 para un cierto valor de t2//
t4=t4+dt4; //t4+dt4 representa el valor real de t4 para un cierto valor de t2//
i=i+1; //iteramos para obtener valores de t3 y t4 que se aproximen mas al real//
}
printf("%3.0f\t%3.4f\t\t%3.4f\n", t2, t3*180/pi, t4*180/pi);
fprintf(doc, "%3.0f\t%3.4f\t\t%3.4f\n", t2, t3*180/pi, t4*180/pi); //escribimos los datos en el archivo de texto//
t2=t2+1;
}
fclose (doc); //cerramos y guardamos el archivo//
return 0;
}