Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2008, 15:51   #1
Sexy Fox
 
Регистрация: 18.06.2007
Сообщений: 4
Смущение Паскаль. Массивы

Помогите ребенку, люди добрыеееее!!!!!

Это нужно сделать в Паскале с комментариями желательно:

1. Создать массив размером М на N и заполнить его простыми числами т.е. числами, которые делятся только на 1 и на себя.

2. Создать массив G случайных чисел размера M на М. Удалить из него строку номер которой вводится с клавиатуры

ПОЖАЛУЙСТАААААААА!!!!!!!!!!!!!!!!!! !!!
Sexy Fox вне форума Ответить с цитированием
Старый 11.04.2008, 16:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
1.
Было помоему уже. Поиском рули, дитятко.
Цитата:
2.
Прям так и удалить? или все же просто не отображать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2008, 19:12   #3
МаксимNEWProgramm
Пользователь
 
Аватар для МаксимNEWProgramm
 
Регистрация: 04.04.2008
Сообщений: 57
По умолчанию

1)число 1 простое число ....
Вот заполним матрицу 1-ми
for i:=1 to n do
for j:=1 to m do
a[i,j]:=1;
2)
uses crt;
var g:array[1..100]of byte;i,j,n,k,l,poz:longint;
begin
randomize;
readln(n,m);
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(5);
readln(Poz);{номер строки которую надо грохнуть!!!}
for i:=1 to n do
if i<>poz then begin writeln;
for j:=1 to n do
write(a[i,j],' ');
end;
readkey;
end.
Программированине-это не очередная пара, а искуство показать себя!!!
МаксимNEWProgramm вне форума Ответить с цитированием
Старый 12.04.2008, 21:23   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Цитата:
число 1 простое число ....
Меня в седьмом классе учили, что 1 не очень простое число :-) Во всяком случае, не думаю, что преподы будут в восторге от матрицы единичек
Код:
uses Math;
//подключаем модуль Math, в нём есть функция ceil, которая нам нужна

const M = 30;
         N = 40;

var i, j: integer;
     a: integer;
     mas: array[1..M,1..N] of integer;

function is_simple(n: integer): boolean;
var kor: integer;
     i: integer;
     res: boolean;
begin
kor := ceil(sqrt(n)); 
//вычисляем квадратный корень числа и округляем до ближайшего большего числа
if (n = 1) then
  is_simple := false
else
  if (n = 2) then
    is_simple := true
  else
    begin
    res := true;
    for i := 2 to kor do
    //находим остаток от деления на все числа, меньшие или равные округлённого корня
      if ((n mod i) = 0) then
        begin
        //если поделилось, значит число сотавное
        res := false;
        break;
        //выходим из цикла
        end;
    is_simple := res;
    end;
end;
//функция проверки, является ли число простым

begin
a := 2;
for i := 1 to M do
  for j := 1 to N do
    begin
    while (not is_simple(a)) do
      inc(a);
    //увеличиваем а на единичку, пока оно не странет простым
    mas[i, j] := a;
    //заносим в массив
    inc(a);
    //чтобы не повторялись
    end;
end.
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 12.04.2008, 21:33   #5
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Код:
uses crt;
//если честно, не помню, нужен ли для вызова randomize. попробуй без него

const M = 50;

var G: array[1..M,1..M] of integer;
     i, j: integer;
     cut: integer;

begin
readln(cut);
randomize;
for i := 1 to M do
  for j := 1 to M do
    G[i, j] := random(1000);
//заполняем случайными значениями
for i := 1 to M do
  if i <> cut then
    begin
    for j := 1 to M do
      write(a[i, j], ' ');
    writeln;
    end;   
end;
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 12.04.2008, 21:45   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Предложенный выше способ не удаляет строку из матрицы, а лишь не выводит ее на экран. Если бы с матрицей работать дальше, то этот фокус бы не прошел. Удаляют строку так:
Код:
program matrica;
uses crt;
var m,i,j:integer;
    Nstr:integer;
    a:array[1..50,1..50]of integer;
begin
clrscr;
write('m=');readln(m);
write('vvedite Nstr<n: ');readln(Nstr);
randomize;
writeln('Ishodnaia matrica:');
for i:=1 to m do
   begin
      for j:=1 to m do
         begin
           a[i,j]:=random(10);
           write(a[i,j]:3);
         end;
      writeln;
   end;
readln;
{Udalenie stroki}
for j:=1 to m do
for i:=Nstr to m-1 do
   begin
     a[i,j]:=a[i+1,j];
   end;
writeln('Rezulpat:');
for i:=1 to m-1 do
   begin
     for j:=1 to m do
     write(a[i,j]:3);
     writeln;
   end;
readln;
end.
end.
Кстати в стандартном Турбо Паскаль модуля Math нет, зато есть функции Round и Trunc.

Последний раз редактировалось puporev; 12.04.2008 в 21:50.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. массивы }{oTT@БЬ)Ч™ Помощь студентам 9 07.12.2015 20:00
Паскаль. задачи на массивы rant Помощь студентам 27 20.04.2010 09:33
Паскаль. Задачи на массивы pr1mat Паскаль, Turbo Pascal, PascalABC.NET 6 26.05.2008 15:04
Паскаль, массивы. SZero Помощь студентам 5 22.03.2008 16:06
Паскаль, массивы, помогитеее плз ProPaL Помощь студентам 13 16.12.2007 19:03