Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Решение задач на Pascal. Форум 2
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]
Модераторы: paradise, KMA
  

Talon



Новичок

Вообщем ввожу 2 массива 2мерных, нужно в каждом подсчитать количество нулей и сравнив это количество сформировать 2 новых одномерных массива
переписав в первый массив с наименьшим числом нулей а в 2 массив с наибольшим числом нулей!
Так вот массивы задал число нулей нашел, теперь никак не могу из 2 мерного сформироватьодномерный...при этом сравнив еще...процедуры у нас сл лекция их использовать нельзя

program mas;
uses crt;
var a:array [1..100, 1..100] of integer;
   B:array [1..100, 1..100] of integer;
   C:array [1..100] of integer;
   D:array [1..100] of integer;
     m,n,q,w,i,j,k,p,u,z,y,t:integer;
begin
clrscr;
writeln ('vvedite razmer matrici 1:');
readln (m,n);
writeln ('vvedite razmer matrici 2:');
readln (q,w);
 writeln ('vvedite elementi matrici 1:');
 for i:=1 to m do
 for j:=1 to n do
     begin
      write ('A[',i,',',j,']= ');
      readln (A[i,j]);
     end;
 writeln ('vvedite elementi matrici 2:');
 for k:=1 to q do
 for p:=1 to w do
     begin
      write ('B[',k,',',p,']= ');
      readln (B[k,p]);
     end;

     writeln('matrica A:');
for i:=1 to m do
 begin
  for j:=1 to n do
   write(a[i,j], '   ');
   writeln;
 end;
writeln('matrica b:');
for k:=1 to q do
 begin
  for p:=1 to w do
   write(b[k,p], '   ');
   writeln;
 end;
     u:=0; z:=0;
     for i:=1 to m do
     for j:=1 to n do
         begin
           if a[i,j]=0 then u:=u+1;
         end;
     for k:=1 to q do
     for p:=1 to w do
         begin
           if b[k,p]=0 then z:=z+1;
         end;
     writeln ('u=', u, 'z=', z);
     y:=1;
     t:=1;
     if u<z then
       begin
       for i:=1 to m do
       for j:=1 to n do
       c[y]:=a[i,j];
       y:=y+1;
       end Else
       if u>z then
         begin
         for k:=1 to q do
         for p:=1 to w do
         d[t]:=b[k,p];
         t:=t+1;
         end;
         writeln('massiv c naibolshim 4islom 0');
         For t:=1 to q*w do write (c[t]);
         writeln('massiv c naimenshim 4islom 0');
         For y:=1 to m*n do write (c[t]);



readkey;
end.

Всего сообщений: 1 | Присоединился: май 2008 | Отправлено: 17 мая 2008 11:19 | IP
Guest



Новичок

помогите пожалуйста с использованием односвязного списка удалить последний элемент чё то не получаеться

Всего сообщений: Нет | Присоединился: Never | Отправлено: 19 мая 2008 14:08 | IP
mork



Новичок

Огромная просьба, помогите плиииз с задачей по паскалю, срочно нужно сдавать, никак не могу сделать....
Тема: Обработка записей.
Вот сама задача:
На плоскости заданы множество точек A и множество окружностей B (каждая окружность задается значениями координат центра и радиуса). Найти две такие различные точки A, что проходящая через них прямая пересекается с максимальным количество окружностей из B.

заранее спасибо, очень надо.

Всего сообщений: 1 | Присоединился: май 2008 | Отправлено: 21 мая 2008 0:18 | IP
KMA



Долгожитель


помогите пожалуйста с использованием односвязного списка удалить последний элемент чё то не получаеться


Ссылке на предпоследний элемент назначаешь NULL и последний элемент у тебя удаляется.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 22 мая 2008 10:37 | IP
KMA



Долгожитель


Вообщем ввожу 2 массива 2мерных, нужно в каждом подсчитать количество нулей и сравнив это количество сформировать 2 новых одномерных массива
переписав в первый массив с наименьшим числом нулей а в 2 массив с наибольшим числом нулей!
Так вот массивы задал число нулей нашел, теперь никак не могу из 2 мерного сформироватьодномерный...при этом сравнив еще...процедуры у нас сл лекция их использовать нельзя



Ты неправильно делаешь в выделенной тобой области кода. Там не надо все воспринимать так сложно, вот примерно, как это должно выглядеть.

Code Sample:
 
var
     c: array [1..1000] of integer;
     d: array [1..1000] of integer;
...
 {я пропускаю ввод и подсчет нулей.
   пусть u это количество нулей массива A,
   z это количество нулей массива B}
...
  {сформируем одномерные массивы С соответствует А}
  t:=1;
  for i:=1 to m do
   for j:=1 to n do
    begin
      c[t]:=a[i, j];
      t:=t+1
    end;
 {D соответствует D}
  t:=1;
  for i:=1 to q do
   for j:=1 to w do
    begin
      d[t]:=b[i, j];
      t:=t+1;
    end;
 
 {теперь выведем массивы}
  if u>z
    then writeLn ('Массив с большим количеством нулей:')
    else writeLn ('Массив с меньшим количеством нулей:');
  for i:=1 to m*n do
   write (c[ i ], ' ');
 if u<=z
    then writeLn ('Массив с большим количеством нулей:')
    else writeLn ('Массив с меньшим количеством нулей:');
 for i:=1 to q*w do
  write (d[ i ], ' ');



Вот собственно и все.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 22 мая 2008 10:54 | IP
KMA



Долгожитель



Написала программу но чёт не работает.
Определить сумму и кол-во введённых чисел. При вводе Ai+1=Ai закончить работу.



У тебя нет идеи в программе, поэтому у тебя и ошибка. Суть в следующем, ты должен сразу складывать числа и находить сумму.
Это реализуется так.

Code Sample:
 
j:=0;
summa:=0;
old_i:=0;
repeat
 old_i:=i; {запоминаем старое значение i}
 writeLn ('Введите число');
 readLn (i);
 inc (j);
 summa:=summa+i;
until (old_i+1)=i;
writeLn ('Сумма: ', summa, ' ', j, ' чисел');



В условии у тебя указано не значение, а номера элементов, в данном случае, если у тебя встретятся два одинаковых введеных числа, то закончить ввод.  
Последнее число у меня так же считает, если необходимо чтобы не считал, после цикла вычти из суммы значение i.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 22 мая 2008 11:05 | IP
osokina



Новичок

Здравствуйте Помогите пожалуйста не получается с задачей Найти разницу между первым и последним целым числом из 10 случайных чисел, полученных в диапазоне от 0 до 100.большое спасибо!

Всего сообщений: 2 | Присоединился: май 2008 | Отправлено: 22 мая 2008 11:11 | IP
KMA



Долгожитель


Текст нужно ввести с клавиатуры. Пробовал прогонять val, но это ничего не дало. в полном тупике


Daimer, все гораздо проще.

1. Просматриваешь строку начиная с первого символа.
2. Двигаешься по строке вправо на 1 символ. Если конец строки, то заканчиваешь цикл.
3. Если встречается цифра, т. е. символ 0, 1, 2... 9, то переходишь к шагу 4, если нет, то идешь на шаг 2.
4. Запоминаешь текущую позицию в строке, пусть это будет start_i.  
5. Заводишь счетчик цифр, пусть это будет count_digit<-1.
6. Если следующий символ цифра, прибавляешь к count_digit 1, сдвигаешься на следующий символ по строке, идешь на шаг 6, если следующий символ не цифра, то идешь на шаг 7.
7. Применяешь функцию val - начальное значение и количество символов числа тебе известно (start_i и count_digit соответственно). Полученное значение сохраняешь в переменной buf;
8. Если buf>max, то max<-buf.
9. Ставишь указатель строки на start_i+count_digit позицию. Возвращаешься в главный цикл, переходя на шаг 2.

На выходе должен получить max.


(Сообщение отредактировал KMA 22 мая 2008 11:21)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 22 мая 2008 11:20 | IP
Admire



Новичок

Помогите пожалуйста решить задачу: В 1985 году урожай ячменя составил 20 ц. с га. В среднем каждые два года урожай увеличивался на 5%. Определите через сколько лет урожайность достигнет 25 ц. с га.
Надо использовать цикл While...
Если поможете буду очень благодарен...

Всего сообщений: 2 | Присоединился: май 2008 | Отправлено: 22 мая 2008 19:33 | IP
Spaun666


Новичок

Человечество! Возникла проблема. Такая задача: Написать программу, с использованием вложенного цикла, которая выводит на экран таблицу
a
ab
abc
но вся фишка в том, что без использования string и ord. Сколько бьюсь,не получается. Мысли кончились

Всего сообщений: 3 | Присоединился: май 2008 | Отправлено: 22 мая 2008 22:18 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]

Форум работает на скрипте © Ikonboard.com