Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

em có câu hỏi mong thầy và các bạn giúp em!!

2 posters

Go down

em có câu hỏi mong thầy và các bạn giúp em!! Empty em có câu hỏi mong thầy và các bạn giúp em!!

Bài gửi  PhamVinhToan(K18) 9/4/2016, 18:22

Trong cái code giải PT bậc 2 của thầy với vòng lặp do while mình muốn nó lặp không giới hạn thì làm sao ạ?

đây là code em cho lặp 10 lần và sleep(5000)

//giai phuong trinh
//phuong trinh cua toi
#include"stdafx.h"
#include<stdio.h>
#include<iostream>
#include <conio.h>
#include<math.h>
#include<windows.h>
using namespace std;
int a,b,c,delta,n;
int SoLan=10;
void GiaiPTBac2();

int main(int argc, char *argv[])
{
cout<<"*Giai Phuong Trinh Bac 2:\n";
if(argc==10)
SoLan=atoi(argv[1]);
for(int i=0;i<SoLan;i++)
{
cout<<"\n-Phuong Trinh "<<i+1;
do
{
cout<<"\nNhap So A:"; cin>>a;
} while (a==0);
cout<<"Nhap So B:"; cin>>b;
cout<<"Nhap So C:"; cin>>c;
GiaiPTBac2();
}

Sleep(5000);
}
void GiaiPTBac2()
{
delta=b*b-4*a*c;

if(delta<0)
cout<< "Phuong Trinh Vo Nghiem";
else

if(delta == 0)
{
cout << "Phuong Trinh Co Nghiem Kep:" << -b/2*a;
}
else

cout<<"Phuong Trinh Co Nghiem x1 :"<< ((-b-sqrt(delta))/(2*a))<<"\nPhuong Trinh Co Nghiem x2:"<< ((-b+sqrt(delta))/(2*a));
_getch();
}

Admin:
- Các bạn cho bạn Toàn biết về Vòng lặp bất tận !
- Code trên có lỗi tại các dòng được tô đỏ. Hãy góp ý cho bạn !

PhamVinhToan(K18)

Tổng số bài gửi : 12
Join date : 17/02/2016
Age : 27
Đến từ : đăk nông

Về Đầu Trang Go down

em có câu hỏi mong thầy và các bạn giúp em!! Empty Re: em có câu hỏi mong thầy và các bạn giúp em!!

Bài gửi  NguyenDucAnh 10/4/2016, 11:11

Bạn thay đổi for(int i=0;i < SoLan;i++) thành while (1) để có vòng lặp bất tận nha.
Ở while (1): 0 là giá trị sai, ta có số 1 là một số khác 0 nên biểu thức là luôn đúng tạo nên vòng lặp bất tận.

int main(int argc, char *argv[])
if(argc==10)
SoLan=atoi(argv[1]);
Ở đây argc là số lượng chuỗi trong argv, không phải số lần, bởi vậy if(argc==10) sẽ sửa lại thành if(argc==2).
argv[0] là chuỗi chứa file thực thi exe (đường dẫn đến file exe chẳng hạn như "C:\Users\hihi\Documents\Visual Studio 2012\Projects\Giai phuong trinh bac hai\Debug\GPTB2.EXE").
argv[1] sẽ chứa chuỗi tiếp theo bạn nhập vào thông qua shortcut. Sau đó hàm atoi() sẽ chuyển chuỗi đấy thành số nguyên và gán cho SoLan.

cout << "Phuong Trinh Co Nghiem Kep:" << -b/2*a
Bạn sửa -b/2*a thành -b/(2*a) để có kết quả đúng nha.

Admin:
Rất tiến bộ !

NguyenDucAnh

Tổng số bài gửi : 13
Join date : 20/02/2016
Age : 28
Đến từ : Đăk Lăk

Về Đầu Trang Go down

em có câu hỏi mong thầy và các bạn giúp em!! Empty Re: em có câu hỏi mong thầy và các bạn giúp em!!

Bài gửi  PhamVinhToan(K18) 10/4/2016, 18:32

cảm ơn thầy và bạn Đức Anh cái chỗ if(argc==10) là em tự sữa để xem nó thế nào, còn lỗi -b\2*a là em sai cam ơn các bạn đã giúp!

Admin:
Tốt !

PhamVinhToan(K18)

Tổng số bài gửi : 12
Join date : 17/02/2016
Age : 27
Đến từ : đăk nông

Về Đầu Trang Go down

em có câu hỏi mong thầy và các bạn giúp em!! Empty Re: em có câu hỏi mong thầy và các bạn giúp em!!

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết