Domingo 15 de Diciembre de 2024, 03:47
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Una duda con un programa basico
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Una duda con un programa basico (Leído 2800 veces)
tkc009
Nuevo Miembro
Mensajes: 13
Una duda con un programa basico
«
en:
Viernes 29 de Enero de 2010, 16:47 »
0
Hola a todos, miren tengo una duda con un programa que lo fui haciendo a travez de un tutorial, pero hay una cosa que no se me aclaro:
Código: C++
#include <stdio.h>
int
main
(
)
{
float
x1, x2, paso
;
float
y, i
;
printf
(
"Tabla de valores para la funcion Y=X*X-5*X+10n"
)
;
printf
(
"nIntroduce el valor menor de x: "
)
;
scanf
(
"%f"
,
&
x1
)
;
printf
(
"Introduce valor mayor de x: "
)
;
scanf
(
"%f"
,
&
x2
)
;
printf
(
"Introduce el incremento del valor x: "
)
;
scanf
(
"%f"
,
&
paso
)
;
for
(
i
=
x1
;
i
<=
x2
;
i
=
i
+
paso
)
{
y
=
i
*
i
-
5
*
i
+
10
;
printf
(
"nX= %15f Y= %15f"
,i, y
)
;
}
while
(
getchar
(
)
!
=
'n'
)
;
getchar
(
)
;
}
yo se que bueno se introducen los 3 valores, bueno despues de eso dentro del for que tenemos y=i*i-5*i+10; osea la primera i de este calculo que es remplazado por x1 y luego la segunda i por x2 y por ultimo por paso, esto es lo que no se me aclara
Tweet
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: Una duda con un programa basico
«
Respuesta #1 en:
Viernes 29 de Enero de 2010, 21:04 »
0
Estas completamente equivocado y confundido, el valor de i en toda la ecuacion vale lo mismo, no tiene 3 valores diferentes como mencionas. Por lo que estas mencionando, me parece que tu confusion viene de aqui:
Código: C++
for
(
i
=
x1
;
i
<=
x2
;
i
=
i
+
paso
)
{
y
=
i
*
i
-
5
*
i
+
10
;
printf
(
"nX= %15f Y= %15f"
,i, y
)
;
}
Esa linea en realidad significa:
1. Guarda el valor de x1 en i (i=x1).
2. Pregunta si el valor de i es menor o igual que X2 (i<=X2)
Si es menor o igual, entra al ciclo.
Si es mayor, sales del ciclo (ve al paso 6)
3. Calcula la equacion e imprime el resultado.
4. Incrementa el valor de i en paso (i=i+paso)
5. Regresas al paso 2
6. Salida del ciclo
Segun esto, y suponiendo que tienes X1= 1, X2 = 3, paso = 1, significaria que el ciclo se ejecuta 3 veces, ya que iria de 1 hasta 3, incrementando de uno en uno, y por lo tanto la primera vez que entra al ciclo, TODOS los valores de i en la ecuacion se sustituyen por el valor de 1, esto significa que tu ecuacion:
y=i*i-5*i+10
se tranforma en:
y=1*1-5*1+10
La segunda vez se tranforma en
y=2*2-5*2+10
y asi sucesivamente.
Si aun asi no entiendes, me parece que tendrias que regresarte a la materia de algoritmos, es especial la seccion que trata sobre ciclos, contadores y acumuladores.
Saludos
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
tkc009
Nuevo Miembro
Mensajes: 13
Re: Una duda con un programa basico
«
Respuesta #2 en:
Viernes 29 de Enero de 2010, 22:58 »
0
Muchas gracias profesorx hoy empeze a ver el siglo "for", me aclaraste la duda de muy lejos
sabia que estaba completamente equivocado, y bueno yo muy agradecido jaja.
Salu2
tkc009
Nuevo Miembro
Mensajes: 13
Re: Una duda con un programa basico
«
Respuesta #3 en:
Domingo 31 de Enero de 2010, 20:09 »
0
Ahora tengo otra duda con otro programa que es este:
Código: C++
#include <stdio.h>
int
main
(
)
{
float
x1, x2, paso
;
float
i, y
;
printf
(
"nTabla de valores para la funcion Y=X*X-5*X+10"
)
;
printf
(
"nnIntroduce el menor valor de x: "
)
;
scanf
(
"%if"
,
&
x1
)
;
printf
(
"nIntroduce el mayor valor de x: "
)
;
scanf
(
"%if"
,
&
x2
)
;
if
(
x1
>
x2
)
{
printf
(
"nLo siento vuelta a intentarlo"
)
;
return
;
}
printf
(
"nIntroduce el incremento del valor x: "
)
;
scanf
(
"%if"
,
&
paso
)
;
if
(
paso
<=
0
)
{
printf
(
"nLo siento vuelta a intentarlo"
)
;
return
;
}
for
(
i
=
1
;
i
<=
x2
;
i
=
i
+
paso
)
{
y
=
i
*
i
-
5
*
i
+
10
;
printf
(
"Y= %if X= %if"
,y, i
)
;
}
while
(
getchar
(
)
!
=
'n'
)
;
getchar
(
)
;
}
yo lo ejecuto con dev-c++ pero el compilador creo que dice que es un error del return, cual seria exactamente el problema
Garethsoul
Nuevo Miembro
Mensajes: 13
Re: Una duda con un programa basico
«
Respuesta #4 en:
Lunes 1 de Febrero de 2010, 06:54 »
0
Primero que nada buenas je al final te dejo el codigo ya funcionando te comento los errores que vi y correji:
1) como sabras la funcion int main(){} debe de retornar un entero SIEMPRE! vos estabas poniendo el
Código: C++
return
;
pero te faltaba agregarle o una variable entera o el numero 0 EJEMPLO
Código: C++
return
0
;
.
2)El otro error que vi es que tratabas de tomar los valores float con scanf usando la letra incorrecta ya que para cada tipo de variable se usa una letra distinta EJEMPLO
Código: C++
scanf
(
"%if"
,
&
x2
)
;
// asi lo ponias vos
scanf
(
"%f"
,
&
x2
)
;
//como es un float usas la letra f y solo f
si la variable x2 en ves de ser float fuese int usarias lo siguiente
Código: C++
scanf
(
"%i"
,
&
x2
)
;
// o tambien podes usar %d si mal no recuerdo
y no hace falta que pongas tantos "return 0" con que lo pongas antes de cerrar la funcion main anda igual.
El codigo que sigue es con los returns de MAS.
Código: C++
#include <stdio.h>
int
main
(
)
{
float
x1, x2, paso
;
float
i, y
;
printf
(
"nTabla de valores para la funcion Y=X*X-5*X+10"
)
;
printf
(
"nnIntroduce el menor valor de x: "
)
;
scanf
(
"%f"
,
&
x1
)
;
printf
(
"nIntroduce el mayor valor de x: "
)
;
scanf
(
"%f"
,
&
x2
)
;
if
(
x1
>
x2
)
{
printf
(
"nLo siento vuelta a intentarlo"
)
;
return
0
;
}
printf
(
"nIntroduce el incremento del valor x: "
)
;
scanf
(
"%f"
,
&
paso
)
;
if
(
paso
<=
0
)
{
printf
(
"nLo siento vuelta a intentarlo"
)
;
return
0
;
}
for
(
i
=
1
;
i
<=
x2
;
i
=
i
+
paso
)
{
y
=
i
*
i
-
5
*
i
+
10
;
printf
(
"Y= %f X= %f"
,y, i
)
;
}
while
(
getchar
(
)
!
=
'n'
)
;
getchar
(
)
;
return
0
;
}
y ACA TENES SIN LOS RETURNS los probe a ambos funcionan igual.
Código: C++
#include <stdio.h>
int
main
(
)
{
float
x1, x2, paso
;
float
i, y
;
printf
(
"nTabla de valores para la funcion Y=X*X-5*X+10"
)
;
printf
(
"nnIntroduce el menor valor de x: "
)
;
scanf
(
"%f"
,
&
x1
)
;
printf
(
"nIntroduce el mayor valor de x: "
)
;
scanf
(
"%f"
,
&
x2
)
;
if
(
x1
>
x2
)
{
printf
(
"nLo siento vuelta a intentarlo"
)
;
}
printf
(
"nIntroduce el incremento del valor x: "
)
;
scanf
(
"%f"
,
&
paso
)
;
if
(
paso
<=
0
)
{
printf
(
"nLo siento vuelta a intentarlo"
)
;
}
for
(
i
=
1
;
i
<=
x2
;
i
=
i
+
paso
)
{
y
=
i
*
i
-
5
*
i
+
10
;
printf
(
"Y= %f X= %f"
,y, i
)
;
}
while
(
getchar
(
)
!
=
'n'
)
;
getchar
(
)
;
return
0
;
}
Cualquier duda avisa
tkc009
Nuevo Miembro
Mensajes: 13
Re: Una duda con un programa basico
«
Respuesta #5 en:
Miércoles 3 de Febrero de 2010, 07:23 »
0
Gracias garethsoul, mi otra duda es
Código: C++
int
main
(
)
{
int
cat1, cat2, hip
;
char
pregunta
[
1
]
;
pregunta
[
0
]
=
's'
;
while
(
(
pregunta
[
0
]
==
's'
)
||
(
pregunta
[
0
]
==
'S'
)
)
como funciona pregunta[0] = 's' si alguien me lo pueda explicar. Estoy viendo c++ por cuenta propia xq me interesa y voy viendo de un tutorial que nada mas te tira ejersicios xD
Garethsoul
Nuevo Miembro
Mensajes: 13
Re: Una duda con un programa basico
«
Respuesta #6 en:
Miércoles 3 de Febrero de 2010, 20:48 »
0
de nada.
Sobre lo ultimo no entiendo que es lo que queres saber...?
si estas viendo C++ por cuenta propia te recomiendo esta pagina que explica todo detalladamente y con ejemplos.
c.conclase.net /curso/ index .php
tkc009
Nuevo Miembro
Mensajes: 13
Re: Una duda con un programa basico
«
Respuesta #7 en:
Jueves 4 de Febrero de 2010, 04:57 »
0
Lo que yo quiero saber como funciona pregunta[0] = 's' osea en el elemento 0 se reserva la letra s?. Con respecto a c.conclase lo vi y sinceramente no me gusto como lo explican, gracias igualmente.
Garethsoul
Nuevo Miembro
Mensajes: 13
Re: Una duda con un programa basico
«
Respuesta #8 en:
Jueves 4 de Febrero de 2010, 19:12 »
0
exacto los tipos de variable char almacenan caracteres en este caso la letra s;
también podes crear un vector char (osea char vector[]) para que almacene una cadena de caracteres osea una frase ejemplo;
Código: C++
#include <iostream>
using
namespace
std
;
int
main
(
)
{
char
H
[
12
]
=
"Hola Mundo"
;
//DEBES tener en cuenta que las cadenas se ponen entre doble comilla (") y los caracteres entre simple comilla (')
//y si lo quisieras imprimir haces
cout
<<
H
<<
endl
<<
endl
;
//Tambien si quisieras lo podes imprimir por caracter EJEMPLO
for
(
int
i
=
0
;
i
<
10
;
i
++
)
cout
<<
"La letra que pertenece al vector numero "
<<
i
<<
" es: "
<<
H
[
i
]
<<
endl
;
cout
<<
endl
;
system
(
"pause"
)
;
return
0
;
}
compila eso y ahi te explica bien je. (te subiria la imagen ya compilado pero no tengo permiso para postear links......
Cualquier duda avisa.
tkc009
Nuevo Miembro
Mensajes: 13
Re: Una duda con un programa basico
«
Respuesta #9 en:
Jueves 4 de Febrero de 2010, 23:41 »
0
Ajam entendi, y por que si yo por ejemplo pregunta[0] ponele que pongo pregunta[1] y obvio que dentro de este elemento voy a reserva el caracter s no funciona como deberia? a que se debe esto.
Gracias garethsoul lo voy a tener en cuenta tu ejemplo
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Una duda con un programa basico