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

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

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

Восстановить пароль

Купить рекламу на форуме - 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,987
По умолчанию

Код:
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