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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2015, 13:11   #1
mira95
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 18
Вопрос Паскаль. Добавление элементов массива

Условие: Сформировать массив a[1..n] случайным образом. Определить, содержит ли он заданное число. Если элемент найден, то вставить перед ним элемент вдвое больше найденного. Поиск осуществить методом линейного поиска.

П.с.: я гуглила и пыталась найти что-то похожее, но варианты со всякими там записями, прцедурами, типизированными файлами не подходят. Нужно принципиально вставить сюда кусочек кода, который будет работать. без перечисенного мною. Я знаю, что применяется цикл down to, но как, куда, что я не разбираюсь, я запуталась, буду рада помощи. Заранне спасибо. То, что у меня получилось, просто находит элемент, но ничего не добавляет. Вот сам код:
Код:
program poisk1;
uses crt;
const n=10;
var a: array[1..10] of integer;
i,x: integer; f:boolean;
begin
randomize;
for i:=1 to 10 do  begin
a[i]:=random(101);
writeln(a[i]);     end;
write('Задайте искомый элемент ');
readln(x);

f:=false;
i:=1;
while (i<=n) and not f do begin
 if a[i]=x then f:=true
 else i:=i+1;
 end;
 if f then writeln('Нашли элемент с номером ',i)
 else writeln('Такого элемента нет');
 end.
mira95 вне форума Ответить с цитированием
Старый 01.11.2015, 13:30   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
program poisk1;
uses crt;
const n=10;
var a: array[1..10] of integer;
    i,x: integer;
begin
   randomize;
   for i:=1 to 10 do
   begin
      a[i]:=random(101);
      writeln(a[i]);
   end;
   write('Задайте искомый элемент ');
   readln(x);
   For i:=1 to 10 do
   begin
      If a[i]=x then
         Write(2*x,'  ');
      Write(a[i],'  ');
   end;
   Writeln;
   Readln;
end.
Сойдет?

Кстати, динамически изменить массив уже нельзя, если a: array[1..10] of integer;

А вот так динамически:
Код:
var a: array of integer;
    i,j,x,n: integer;
begin
   randomize;
   write('n = ');
   readln(n);
   SetLength(a,n);
   for i:=0 to n-1 do
   begin
      a[i]:=random(101);
      writeln(a[i]);
   end;
   write('Задайте искомый элемент ');
   readln(x);
   For i:=n-1 downto 0 do
      If a[i]=x then
      begin
         n:=n+1;
         SetLength(a,n);
         For j:=n-1 downto i+1 do
            a[j]:=a[j-1];
         a[i]:=2*x;
      end;
   For i:=0 to n-1 do
      Write(a[i],'  ');
   Writeln;
   Readln;
end.
Сойдет?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 01.11.2015 в 13:39.
newerow1989 вне форума Ответить с цитированием
Старый 01.11.2015, 14:22   #3
mira95
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 18
Лампочка

Первый вариант ничего так, но не факт, что прокатит, а что там с else , ну т.е. можно сделать так чтоб если элемент не нашли, то выводит сообщение об ошибке или добавляя этот writeln ,pascal так и будет выделываться что мол "нельзя ставить точку с запятой", а когда убирается, говорить "ожидалась точка с запятой"?

Тема все еще в силе. Жду предложений, всем еще раз большое спасибо, кто постарался помочь

Последний раз редактировалось Stilet; 02.11.2015 в 07:56.
mira95 вне форума Ответить с цитированием
Старый 02.11.2015, 00:51   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

А без музейного турбопаскакаля никак нельзя?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 02.11.2015, 00:57   #5
mira95
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 18
По умолчанию

В том то и дело, что задача на Паскале :/
И я кажется нашла примерно какой она должна быть, что-то в этом духе, только числа рандомные мы заранее не знаем, перед каким именно элементом будем вставлять элемент, который в 2 раза больше того, который мы ищем. И должен выдавать сообщение, мол "Такого элемента нет", если его не нашли:

Код:
var i,n,k,m:longint;
    a:array [1..101] of longint;
begin
  readln(n);      {читаем длинну массива}
  for i:=1 to n do       {и сам массив}
    read(a[i]);
  readln(k);  
  readln(m); 
  for i:=n+1 downto k+1 do {сдвигаем элементы с N до K вправо}
    a[i]:=a[i-1];                   {на одну позицию}
  a[k]:=m; {записываем новое число в A[k]}
  for i:=1 to n+1 do
    write(a[i],' ');
  readln;
end.
mira95 вне форума Ответить с цитированием
Старый 02.11.2015, 01:02   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
В том то и дело, что задача на Паскале :/
а чем это обусловлено?
кстати, искомое число может встречаться в массиве неоднократно.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 02.11.2015 в 01:05.
min@y™ вне форума Ответить с цитированием
Старый 02.11.2015, 01:09   #7
mira95
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 18
По умолчанию

Предметом. "Теория Алгоритмов"-все задачи по этому предмету решаем именно на Паскале :/
mira95 вне форума Ответить с цитированием
Старый 02.11.2015, 01:19   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
"Теория Алгоритмов"-все задачи по этому предмету решаем именно на Паскале :/
Чо, неужели вот прям на этом паскале??!!



На delphi/lazarus вам лабы делать запретили? Или вы не спрашивали?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 02.11.2015, 01:24   #9
mira95
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 18
По умолчанию

Паскаль АБЦ/Турбо Паскаль, для Делфи существует отдельный предмет :/ по этому же еще и отчеты защищаем
mira95 вне форума Ответить с цитированием
Старый 02.11.2015, 01:27   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

какой кошмар.
в какой стране находится твоё учебное заведение?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив размера n. Найти максимальный элемент массива среди элементов массива,после первого отрицательного (Паскаль) Элиза12345 Паскаль, Turbo Pascal, PascalABC.NET 7 13.11.2012 16:03
Добавление и удаление элементов из массива строк Alex2391 Общие вопросы Delphi 1 04.03.2011 17:59
Произведение элементов массива [Паскаль] Анна22 Помощь студентам 2 06.12.2010 23:57
Добавление элементов массива в массив JOFRIF Общие вопросы C/C++ 11 04.10.2008 01:47