Решение уравнения перебором

12 сентября 2018 - Администратор

Программа на Си для решения уравнения перебором

На этом уроке мы напишем программу на си для решения уравнения перебором Ищем решение уравнения в целых числах методом полного перебора При написании программы полезным бует урок Циклы в Си.Описание алгоритм программы решения уранения методом перебора.В программе вводится функция, которая определяет левую часть уравнения.Подробно о функции в Си
// задаем уравнение
int ur(int x, int y)
{
  return x*x+x*y+1000;  
 }

Задается диапазон для обоих переменных,в котором будет производиться поиск решения. Диапазон задается с клавиатуры. Подробно о вводе информации в Си с клавиатуры
  printf ("Задайте диапазон поиска\n");
  printf("Левая граница\n");
  scanf("%d", &a);
  printf("Правая граница\n");
  scanf("%d", &b);

Чтобы перебрать все значения переменных используются вложенные циклы for . Первый цикл отвечает за перебор для переменной x, второй вложенный цикл для переменной y.
// пробегаем все возможные x
  for (i=a;i<b; i++)
  {
  // пробегаем всевозможные y
   for (j=a;j<b; j++)  
      {
      // проверка решения
                if (ur(i,j)==0) 
                {    
                      printf ("x =%d y=  %d\n", i,j);// выводим решение
                      k=k+1; // увеличиваем количество решений         

                                 }        
      }     
  }

Пример полного решения программа на си решение уравнения перебором
//решение уравнения в целых числах с двумя переменными
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
// задаем уравнение
int ur(int x, int y)
{    
  return x*x+x*y+1000;  
 }

int main()
{
  int i,j;
  int a, b;// параметры для диапазона
  int k=0;// счётчик решений
  printf ("Задайте диапазон поиска\n");
  printf("Левая граница\n");
  scanf("%d", &a);
  printf("Правая граница\n");
  scanf("%d", &b);

  // пробегаем все возможные x
  for (i=a;i<b; i++)
  {
  // пробегаем всевозможные y
   for (j=a;j<b; j++)  
      {
      // проверка решения
                if (ur(i,j)==0) 
                {    
                      printf ("x =%d y=  %d\n", i,j);// выводим решение
                      k=k+1; // увеличиваем количество решений         
                                 }          
      }     
  }  

   if (k==0){printf("В заданном диапазоне решений в целых числах нет\n");}         
   getch();         
}

На заметку:
1. Чтобы  проверить значения для двух переменных методом перебора, необходимо использовать вложенные циклы for
Задания для самостоятельной работы
Методом полного перебора ищем решение уравнения в целых числах с тремя переменными.
В данной программе нужно использовать три цикла for  вложенные друг в друга.

Вернуться к содержанию

Полезно почитать по теме циклы в си
Цикл for в си
Пример программы на си заполнение экрана цветным орнаментом

Поделиться

 
 
Комментарии (0)

Нет комментариев. Ваш будет первым!