М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
lediyulia04
lediyulia04
01.07.2020 19:16 •  Информатика

Побудувати 10 горизонтальних паралельних ліній. паскаль

👇
Открыть все ответы
Ответ:
HoneyAmy
HoneyAmy
01.07.2020
Программа в системе PascalABC.Net (время выполнения около 2с)
var
  n1,n2,n3:int64;

function IsPrime(n:Int64):Boolean;
var
  p:Int64;
  found:Boolean;
begin
  case n of
  1:Isprime:=False;
  2:IsPrime:=True;
  else begin
    found:= (n Mod 2 = 0);
    p:=3;
    while (not found) and (sqr(p)<=n) do
      begin found:=(n Mod p = 0); p:=p+2 end;
    IsPrime:=(not found) or (p = 2)
    end
  end
end;

procedure Fib();
begin
  n3:=n1+n2; n1:=n2; n2:=n3
end;
 
var
  i,k:integer;
begin
  n1:=0; n2:=1; k:=0;
  Writeln('Простые среди первых 45 чисел Фибоначчи');
  for i:=3 to 45 do
  begin
    Fib; if IsPrime(n3) then begin Write(n3,' '); Inc(k) end
  end;
  Writeln(#13#10,'Найдено простых чисел: ',k)
end.
   
Результат выполнения программы:
Простые среди первых 45 чисел Фибоначчи
2 3 5 13 89 233 1597 28657 514229 433494437
Найдено простых чисел: 10
4,5(11 оценок)
Ответ:
LianessaAngel2
LianessaAngel2
01.07.2020
Одно из решений, возможно, не самое эффективное
#include <iostream>
#include <iomanip>
int main()
{
    using namespace std;

    //исходная последовательность
    const int N = 8;
    double Arr[N] = { 14.2, -3.4, 7.8, -3.1, 8.2, 98.22, -7, 12 };

    //вывод на экран исходной последовательности
    for (int i = 0; i < N; ++i)
        cout << Arr[i] << "  ";
    cout << endl;

    //подсчитаем количества отрицательных и неотрицательных элементов
    int kpos = 0;
    int kneg = 0;
    for (int i = 0; i < N; ++i)
        if (Arr[i] < 0)
            ++kneg;
        else
            ++kpos;

    //создадим массивы отрицательных и неотрицательных элементов
    double * ArrNeg = new double[kneg];
    double * ArrPos = new double[kpos];

    int kn = 0, kp = 0;
    for (int i = 0; i < N; i++)
        if (Arr[i] < 0)
            ArrNeg[kn++] = Arr[i];
        else
            ArrPos[kp++] = Arr[i];

    cout << "Enter a, b, c or d: ";
    char ch;
    cin >> ch;

    if (ch == 'a' || ch == 'b' || ch == 'c' || ch == 'd')
    {
        switch (ch)
        {
            //пункт а)
            case 'a':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[i];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[i];
                break;

                //пункт б)
            case 'b':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[--kn];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[i];
                break;

                //пункт в)
            case 'c':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[i];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[--kp];
                break;

                //пункт г)
            case 'd':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[--kn];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[--kp];
                break;
        }
    }
    else
        cout << "You entered wrong symbol\n";

    for (int i = 0; i < N; ++i)
        cout << Arr[i] << "  ";
    cout << endl;
    delete[] ArrNeg;
    delete[] ArrPos;
    return 0;
}
4,8(77 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ