Машинная память работает по принципу 0 и 1, т. е. 0 это нету сигнала, 1 это есть сигнал. По этому для понимания мы может просто записывать это в таблицу.
К примеру возьмём 2 клетки. Если и первая клетка и вторая равна 1, тогда выполняется что то одно, если не равны, то что то другое.
На самом компьютере да и вообще любом современном электронном устройстве всё работает по этому же принципу, только вместо таблицы с 0 и 1, используется "Есть питания" или же "Нету питания", поступил ток по нужному проводу или нет.
Во вложении находится файл в формате MS Excel 2003. Во втором вложении - фрагмент таблицы, где видно, что уравнение имеет два корня : -1 и 6.
Для решения составляем две функции y₁=x²-2x-5 и y₂=3x+1 и вычисляем их значения на заданном интервале с каким-то шагом (был принят шаг, равный 1). Точек получилось много, но нас интересуют те, где y₁ ≈ y₂. Для простоты была выделена еще одна колонка, где вычислялись значения y₁-y₂. Была найдена область значений, близких к нулю (выделена желтым) и по значениям аргумента х из этой области строились графики. А далее мы нашли точки их пересечения.
PascalABC.NET 3.2, сборка 1399 от 08.03.2017 Внимание! Если программа не работает, обновите версию!
type Uch=record fam,nam:string; ball:integer end; begin var U:=new Uch[40]; // Ввод данных (до 40), окончание- пустой ввод var i:=0; repeat var a:=ReadlnString('Ученик '+(i+1).ToString+':').ToWords; if a.Count=0 then break; U[i].fam:=a[0]; U[i].nam:=a[1]; U[i].ball:=integer.Parse(a[2]); i+=1 until i=40; SetLength(U,i); // массив отрегулирован под реальное кол-во // поиск Writeln('1 - поиск по фамилии и имени;'); Writeln('2 - поиск по оценке;'); Writeln('3 - поиск учеников с лучшей оценкой;'); Writeln('иной символ - завершение'); repeat var c:=ReadlnChar('Ваш выбор:'); case c of '1':begin var s:=ReadlnString('Фамилия и имя:').ToWords; var found:=false; for var j:=0 to U.Length-1 do if (U[j].fam=s[0]) and (U[j].nam=s[1]) then begin Writeln('Отметка ',U[j].ball); found:=true; break end; if not found then Writeln('Нет такого ученика') end; '2':begin var k:=ReadlnInteger('Оценка:'); var found:=false; for var j:=0 to U.Length-1 do if U[j].ball=k then begin Writeln(U[j].fam,' ',U[j].nam); found:=true; end; if not found then Writeln('Нет такого ученика') end; '3':begin var m:=U.Select(x->x.ball).Max; for var j:=0 to U.Length-1 do if U[j].ball=m then Writeln(U[j].fam,' ',U[j].nam); end; else break end; until false; приходите еще!') end.
Пример Ученик 1: Иванов Петр 4 Ученик 2: Петров Иван 5 Ученик 3: Висечкин Николай 3 Ученик 4: Зотова Марина 4 Ученик 5: Любимов Павел 5 Ученик 6: Козлова Елена 4 Ученик 7: 1 - поиск по фамилии и имени; 2 - поиск по оценке; 3 - поиск учеников с лучшей оценкой; иной символ - завершение Ваш выбор: 3 Петров Иван Любимов Павел Ваш выбор: * приходите еще!
Машинная память работает по принципу 0 и 1, т. е. 0 это нету сигнала, 1 это есть сигнал. По этому для понимания мы может просто записывать это в таблицу.
К примеру возьмём 2 клетки. Если и первая клетка и вторая равна 1, тогда выполняется что то одно, если не равны, то что то другое.
На самом компьютере да и вообще любом современном электронном устройстве всё работает по этому же принципу, только вместо таблицы с 0 и 1, используется "Есть питания" или же "Нету питания", поступил ток по нужному проводу или нет.