Дано квадратное уравнение ax2+bx+c=0. Дан массив из n целых чисел - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Помогите, пожалуйста, с задачей: Дано квадратное уравнение ax2+bx+c=0. Дан массив из n целых чисел. Проверить, существует ли хотя бы одно число в данном массиве, которое являлось бы корнем уравнения. Выдать в качестве результата номера таких элементов. Если такой элемент отсутствует результату присвоить значение ноль. Нашла вариант на языке Паскаль, однако перевести на С# качественно - не получилось. Вот: program array18; uses crt; var a1:array[1..100] of integer; x1,x2,x,a,b,c,d:real; n,k,i,t:integer; begin clrscr; writeln('Введите количество элементов:'); read(n); for i:=1 to n do begin writeln('введите a1[',i,'] эл. мас.'); read(a1[i]); end; writeln('введите коэффициенты уравнения a,b,c:'); read(a,b,c); d:=sqr(b)-4*a*c; if d<0 then begin writeln('Результат=0'); exit; end else if d=0 then x:=-b/(2*a) else begin x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); end; writeln('Исходный массив'); for i:=1 to n do write(a1[i]:3); writeln; writeln('Номера элементов равных корням уравнения:'); t:=0; for i:=1 to n do begin if a1[i]=x then begin writeln(i:3); t:=t+1 end else if a1[i]=x1 then begin writeln(i:3); t:=t+1 end else if a1[i]=x2 then begin writeln(i:3); t:=t+1; end; end; if (t=0) then writeln ('Результат=0',k,t); end.

Решение задачи: «Дано квадратное уравнение ax2+bx+c=0. Дан массив из n целых чисел»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace уравнение_и_массив
{
    class Program
    {
        static void Main()
        { 
            Console.WriteLine("Введите количество элементов массива:");
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine("введите коэффициенты уравнения a,b,c:");
            int a = int.Parse(Console.ReadLine());
            int b = int.Parse(Console.ReadLine());
            int c = int.Parse(Console.ReadLine());
            int t = 0;
            int [] arr=new int[n];
            Random rand= new Random();
            for (int i = 0; i < arr.Length;i++)
            {
                arr[i] = rand.Next(-1000, 1000);
               // Console.Write(arr[i]+" ");
            }
            Console.WriteLine();
 
            for (int i = 0; i < arr.Length; i++)
            {
                if (a * arr[i] * arr[i] + b * arr[i] + c == 0)
                {
                    Console.WriteLine("Элемент массива под номером {0} является корнем уравнения "ax^2+bx+c=0"", i + 1);
                    t++;
                }
            }
            if (t == 0)
                Console.WriteLine("Корням уравнения "ax^2+bx+c=0"  не соответствует ни один элемент массива");
                Console.ReadKey();
        }
        
    }
}

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы