olgavlad199
?>

Написать программу в паскаль или исправить ошибку в моей программе. в матрице имеются как положительные так и отрицательные элементы.если отрицательных элементов больше половины, то значение элементов четных строк удвоить, в противном случае удвоить значения элементов только последнего столбца. моя программа: f: text; begin assign (f, 'informat8.txt'); reset(f); writeln( 'исходная матрица'); for i: =1 to n do begin for j: =1 to n do begin read(f, b[i, j]); write (b[i, j]: 8: 2); end; writeln; end; writeln; n1: =0; for i: =1 to n do for j: =1 to n do if b[i, j]< 0 then n1: =n1+1; if n> =round(n/2) then begin for i: =1 to n do begin if not odd(i) then begin for j: =1 to n do b[i, j]: =b[i, j]*2; end; end; end; for i: = 1 to n do b[i, j]: =b[i, j]*2; writeln ('результирующая матрица'); for i: = 1 to n do begin for j: = 1 to n do write (b[i, j]: 8: 2); write; end; writeln('n=', n); end.

Информатика

Ответы

gymnazium
Var
  f: text;
  i, j, n, n1: integer;
  matrix: array[,] of real;
begin
  assign(f, 'informat8.txt');
  reset(f);
  //найдём количество строк в матрице
  while not eof(f) do
   begin
    readln(f);
    inc(n);
  end;
  writeln('исходная матрица размерности ', n, 'x', n);
  //инициализируем массив (размерность узнали выше)
  matrix := new real[n, n];
  reset(f);
  // далее работаем с матрицей размерности [0..n-1] (инициализация происходит, начиная с 0)
  for i := 0 to n - 1 do
  begin
    for j := 0 to n - 1 do
    begin
      read(f, matrix[i, j]);
      write(matrix[i, j]:8:2);
    end;
    readln(f);
    writeln;
  end;
  writeln;
  n1 := 0;
  for i := 0 to n - 1 do
    for j := 0 to n - 1 do
      if matrix[i, j] < 0 then inc(n1);
  if n1 > round(n * n / 2) then
  begin
    writeln('Отрицательных элементов больше половины');
    //удваиваем элементы в чётных строках
    for i := 0 to n - 1 do
    begin
      if odd(i) then begin
        for j := 0 to n - 1 do
           matrix[i, j] := matrix[i, j] * 2;
      end;
    end;
  end else
  begin
    writeln('Отрицательных элементов меньше половины или ровно половина');
    //удваиваем элементы последнего столбца
    for i := 0 to n - 1 do
      matrix[i, n - 1] := matrix[i, n - 1] * 2;
  end;
    writeln('результирующая матрица');
  for i := 0 to n - 1 do  begin
    for j := 0 to n - 1 do
      write(matrix[i, j]:8:2);
    writeln;
  end;
end.

Результат работы:


Написать программу в паскаль или исправить ошибку в моей программе. в матрице имеются как положитель
teashop
Первая программа предназначена ТОЛЬКО для Pascal.ABC, в другой среде она работать не будет. Она самая короткая и простая. Метод Split разбивает исходную строку на слова по символу пробела и формирует динамический массив. Что бы мы ни вводили, мы всегда будем получать в результате то, что требовалось. (понятно, что если слов будет меньше трех, будем получать то, что ввели).

var
  s: string;
  ms: array of string;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  ms := s.Split(' ');
  Writeln(ms[0] + ' ' + ms[2] + ' ' + ms[1])
end.

Вторая программа реализуется в любой версии Pascal. Её недостаток в том, что она правильно работает только тогда, когда введена фраза из трех слов, разделенных пробелом. Это простейший линейный алгоритм.

var
  s, s1, s2, s3: string;
  n, p: integer;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  n := Length(s);
  p := Pos(' ', s);
  s1 := Copy(s, 1, p - 1);
  s3 := Copy(s, p + 1, n - p);
  p := Pos(' ', s3);
  s2 := Copy(s3, 1, p - 1);
  n := Length(s3);
  s3 := Copy(s3, p + 1, n - p);
  Writeln(s1 + ' ' + s3 + ' ' + s2)
end.

Третья программа также реализуема в любой версии Pascal и содержит "классический" работы со строкой, состоящий в последовательном анализе каждого символа. Имеет защиту на случай, если слов будет больше или меньше трех.

var
  s: string;
  ms: array[1..3] of string;
  i, n, p, j: integer;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  {
  Алгоритм: Просматриваем все символы строки начиная с позиции p
  и при обнаружении пробела в позиции q заносим в массив очередное слово,
  копируя q-p символов, начиная с p. Затем заносим в p значение q+1
  и продолжаем просмотр. При старте принимаем p=1
  }
  p := 1; j := 0; n := Length(s);
  for i := 1 to n do
    if s[i] = ' ' then
    begin
      j := j + 1;
      if j <= 3 then begin{ если введено больше двух пробелов }
        ms[j] := Copy(s, p, i - p);
        p := i + 1
      end
    end;
  if j < 3 then ms[3] := Copy(s, p, n - p + 1);
  Writeln(ms[1] + ' ' + ms[3] + ' ' + ms[2])
end.

Все три программы опробованы и результаты их работы одинаковы:

Введите три слова через пробел: Зебра полосатая лошадь
Зебра лошадь полосатая
Reginahappy

первое задание:  1. Необходимо следить за адресами, на которые ведут ссылки. Для того чтобы узнать адрес, на который ведет ссылка необходимо просто навести на нее курсор. Если вам предлагают перейти на сайт Х, а ссылка ведет на сайт Y то тут что-то не так. Возможно, вас пытаются обмануть.

2. Перед вводом личной информации проверяйте адресную строку браузера. Если вы там увидите что то вроде vkontokte.ru вместо привычного vkontakte.ru, то можете быть уверены, что вы находитесь на поддельном сайте и у вас пытаются украсть пароль для доступа к вашему аккаунту. После получения данных злоумышленники могут использовать аккаунт для рассылки спама и вирусов вашим друзьям.

3. Не переходите по незнакомым ссылкам, которые приходят вам на почту, в «аську», или в социальные сети. Даже если ссылка пришла от знакомого человека необходимо быть максимально внимательным. Вполне возможно аккаунт вашего знакомого уже взломан, и теперь от его имени рассылают вирусы.

4. Не скачивайте неизвестные файлы, пришедшие вам на почту или в «аську», даже если файл пришел от вашего знакомого. Перед тем как скачивать такие файлы уточните у отправителя, что это за файл.

5. Современные поисковые системы и браузеры умеют предупреждать пользователя, когда он пытается зайти на сайт распространяющий вирусы. Необходимо внимательно относиться к таким предупреждениям, скорее всего сайт, который вы пытаетесь посетить, заражен.

2 задание 1  Длина пароля. Пароль должен содержать не менее 8 символов, а лучше – 10 и более.

2 Наличие цифр и букв верхнего и нижнего регистров, идущих не подряд – .

3 Наличие специальных знаков – «@», «$», «&» и т.д. (если допустимо их присутствие).

пример [email protected]

Объяснение:

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Написать программу в паскаль или исправить ошибку в моей программе. в матрице имеются как положительные так и отрицательные элементы.если отрицательных элементов больше половины, то значение элементов четных строк удвоить, в противном случае удвоить значения элементов только последнего столбца. моя программа: f: text; begin assign (f, 'informat8.txt'); reset(f); writeln( 'исходная матрица'); for i: =1 to n do begin for j: =1 to n do begin read(f, b[i, j]); write (b[i, j]: 8: 2); end; writeln; end; writeln; n1: =0; for i: =1 to n do for j: =1 to n do if b[i, j]< 0 then n1: =n1+1; if n> =round(n/2) then begin for i: =1 to n do begin if not odd(i) then begin for j: =1 to n do b[i, j]: =b[i, j]*2; end; end; end; for i: = 1 to n do b[i, j]: =b[i, j]*2; writeln ('результирующая матрица'); for i: = 1 to n do begin for j: = 1 to n do write (b[i, j]: 8: 2); write; end; writeln('n=', n); end.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Zashchitin Denis
vikapar2646
astenSA
Михайлович Гуртовая929
mlubov1
Любовь-Волков1205
D-posilochka
terma-msk1
salesrawtogo
Владислав-Аветисян217
gen218
k-serga1
vdm4275
Voronov434
IP1379