Вход
Логин:


Пароль: Забыли пароль?


ПОЗИТИВный форум

Объявление

послушать радио




Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ПОЗИТИВный форум » Программинг » Программирование на Delphi


Программирование на Delphi

Сообщений 1 страница 13 из 13

1

Помогите решить одну задачку:
Дана целочисленная прямоугольная матрица. Определить номер строки, в которой находится самая длинная серия одинаковых элементов (оформить в виде процедуры).

0

2

Прошу любить и жаловать  http://myfizmat.webtalk.ru/img/smilies/IPB_Mini/light/glasses.gif

Код:
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;
const
  n = 5;
var
  ms: array [1..n, 1..n] of integer;
  i,j,count,max,i_max: integer;
begin
  randomize;
  max := 0; i_max := 0;
  for i:=1 to n do
   begin
     count := 0;
     for j:=1 to n do
      begin
        ms[i,j] := random(2);
        if j>1 then 
         if ms[i,j] = ms[i,j-1]
          then inc(count) else count := 0;
        write(ms[i,j]:3);
      end;
     if count > max then
      begin
        max := count;
        i_max := i;
      end;
     writeln;
   end;
  writeln;
  writeln(i_max);
  readln;
end.

внёс корректив

0

3

Думаю до процедуры довести сможешь ;)

0

4

Народ вот еще одно маленькое дельце!
Напишите программы для решения ниже представленной задачи. Входные и выходные данные оформите в виде текстовых файлов (F_INPUT и F_OUT)
В одномерном массиве, состоящем из n целочисленных элементов, вычислить:
1) произведение элементов массива с четными номерами;
2) сумму элементов массива, расположенных между первым и последним нулевыми элементами.
3) преобразовать массив таким образом, чтобы сначала располагались вес положительные элементы, а потом — все отрицательные (элементы, равные нулю, считать положительными).

Отредактировано Sergey (2008-11-18 22:20:21)

0

5

Создаём в одной папке с программой файл input.txt и заполняем его целыми числами, разделяя их пробелами.

Код:
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var
  f, f2: text;
  i,rez, n, k, sum: integer;
  ms: array of integer;
begin
  assign(f, 'input.txt');
  reset(f);
  assign(f2, 'output.txt');
  rewrite(f2);
  rez := 1; i:=0; n := -1; k := -2;
  while not EOLn(f) do
   begin
     inc(i);
     SetLength(ms, i);
     read(f, ms[i-1]);
     if not Odd(i-1) then
      rez := rez * ms[i-1];
     if (ms[i-1] = 0) and (n = -1) then n := i;
     if (ms[i-1] = 0) and (n > -1) then k := i-1;
   end;
  writeln(f2, '1) ', rez);
  sum := 0;
  for i:=n to k do
   sum := sum + ms[i];
  writeln(f2, '2) ', sum);
  for rez:=1 to sqr(length(ms)) do
   for i:=0 to length(ms)-2 do
    if (ms[i+1] >= 0) and (ms[i] < 0) then
     begin
       sum := ms[i];
       ms[i] := ms[i+1];
       ms[i+1] := sum;
     end;
  write(f2, '3) ');
  for i:=0 to Length(ms)-1 do
   write(f2, ms[i], ' ');
  Close(f); Close(f2);
end.

0

6

У нас есть N человек которые сидят по кругу. ЕСть константа счета C... один человек начинает считать с первого человека сидящего за столом. И Каждый C выбывает.Нужно определить номера тех 2-ух человек которые останутся последними.
РЕшите плз http://myfizmat.webtalk.ru/img/smilies/IPB_Mini/light/smile.gif

0

7

Molox написал(а):

Каждый C выбывает

Уточнение: после того, как С-й человек выбыл, счёт начинается с первого или с (С+1) ?

0

8

с С+1

0

9

Не придумал ничего лучшего, чем брутфорс (полный перебор).

Код:
const
  n = 8; c = 3;
var
  ms: array [1..n] of byte;
  i,count,j,c2: integer;
begin
  count := n;
  for i:=1 to n do
   ms[i] := 1;

  i := 0;
  Repeat
    c2 := c;
    Repeat
      inc(i);
      if i>n then i:=1;
      if ms[i] = 1
       then dec(c2);
    Until c2=0;

    ms[i] := 0;
    dec(count);

    for j:=1 to n do
     if ms[j] = 1 then
      write(j:4);
    writeln;
  Until count = 2;

  writeln('Complete!');
  readln;
end.

0

10

Спасибо большое))) ща токо на Паскаль у себя подправлю и супер))))

0

11

Molox
а чем тебе этот код "непаскальный"?.. или тебя смyщает отсутствие чего-то, типа

Код:
Program Cool_Program;
Uses CRT;

??

0

12

НЕт не это а то что

SHERRY написал(а):

const n = 8; c = 3;

И то что ТАйп пишется перед ВАР'ом.
а все остальное норм СПС еще раз....

Млин когда я решал я не додумался до       
        if ms[i] = 1
       then dec(c2);
Я дебил  http://myfizmat.webtalk.ru/img/smilies/IPB_Mini/light/canthearyou.gif

0

13

Molox написал(а):

НЕт не это а то что

SHERRY написал(а):

const n = 8; c = 3;

Константы. Переменные, значение которых задано и неизменяемо. Тип таких переменных определяется автоматически. Хотя можно задать и принудительно. Например:
Const n: real = 4;

0


Вы здесь » ПОЗИТИВный форум » Программинг » Программирование на Delphi