• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Pascal

Зюня0

Новые
Регистрация
29 Май 2014
Сообщения
14
Реакции
0
Баллы
0
Здравствуйте!Мне очень нужна ваша помощь не могу решить задачи Pascal
1. Найти минимальный элемент из элементов массива, расположенных на нечетных местах.
2. Каждый элемент массива заменить произведением его делителей.
(их нужно сделать в процидурах)
3. Определить, сколько раз в строке встречается данное слово.А эту я решила, но мне сказали что не правильно только я не могу понять как ее переделать посмотрите пожалуйста может что то можно с ней сделать:

program lab03;
var a, b: string;
k, i: integer;
begin write('text:');
readln(a);
write('slovo: ');
readln(b);
k := 0;
while pos(b, a) > 0 do
begin k := k + 1;
delete(a, pos(b, a), length(b));
end;
writeln(k);
readln;
end.
Зарание огромное СПАСИБО!!!!!
 
1 задача у тебя вроде так:
program prog;
var a:array[1..15]of integer;
i,min:integer;
begin
for i:=1 to 15 do
read(a);
min:=a[1];
for i:=2 to 15 do
if odd(i) then
if a<min then min:=a;
writeln(min);
end.
 
Хорошо, посмотрю - но позже. Вечером или завтра.
Что касается задачки 3, то отвечайте тем, кто "сказали", жестко. Пусть конкретно укажут, что им не нравится. Потому что программа написана абсолютно правильно, грамотно и даже остроумно. Ничего переделывать не нужно. Это я Вам авторитетно, как программист, заявляю.
 
Присоединяюсь к Владимиру. Программа написана абсолютно верно.
 
2. Каждый элемент массива заменить произведением его делителей. (их нужно сделать в процидурах)
Пожалуйста. Надеюсь, и функция подойдет. Если нет - черкните, переделаем в процедуру (кстати, она пишется именно через "е").
Код:
Const
 N=20;

Var
 A:Array[1..N] of Integer;
 i:Integer;

Function Prod(M:Integer):Integer;
var j,P:Integer;
begin
 if M<4 then P:=M
 else
 begin
  P:=1;
  for j:=M downto 2 do
   if (M mod j)=0 then P:=P*j;
 end;
 Prod:=P;
end;

Begin
 Randomize;
 Writeln('Initial array:');
 for i:=1 to N do
  begin
   A[i]:=Random(16)+1;
   write(A[i]:8);
  end;
 writeln;
 writeln;
 Writeln('New array:');
 for i:=1 to N do
  begin
   A[i]:=Prod(A[i]);
   write(A[i]:8);
  end;
 Readln
End.
 
Огромное спасибо!!!!Проблема в 3 задачи мне преподаватель сказал в том что когда ввожу строку к примеру (12345 568123 123) программа за место того чтобы вывести что слово (123) встречается только 1 раз выводит что оно встречается 3 раза тоесть получается как то надо что то добавить а я не понимаю)))И еще хотела спросить если я добавлю в ваши программы процидуры ввода и вывода я ничего не сломаю и не испорчу?
Зарание спасибо!
 
Еще хотела спросить, а вы можите подсказать по работе в FASM Assembler?
 
И еще хотела спросить если я добавлю в ваши программы процидуры ввода и вывода я ничего не сломаю и не испорчу?
Если "процИдуры" - то точно сломаете. А вот если "процЕдуры" - то это смотря, как добавите. Если грамотно, то не сломаете и не испортите.
 
Проблема в 3 задачи мне преподаватель сказал в том что когда ввожу строку к примеру (12345 568123 123) программа за место того чтобы вывести что слово (123) встречается только 1 раз выводит что оно встречается 3 раза тоесть получается как то надо что то добавить а я не понимаю)))
Ну что же, попробуйте так:
Код:
var
 a,b:string;
 k,i:integer;
 S:Set of Char;
begin
 S:=['A'..'Z']+['a'..'z']+['А'..'Я']+['а'..'я']+['0'..'9'];
 write('text: ');
 readln(a);
 write('slovo: ');
 readln(b);
 k:=0;
 while pos(b,a)>0 do
  begin
   if ((pos(b,a)=1) and not (a[pos(b,a)+Length(b)+1] in S)) or
      (not (a[pos(b,a)-1] in S) and not (a[pos(b,a)+Length(b)] in S)) or
      (not (a[pos(b,a)-1] in S) and (pos(b,a)+Length(b)-1=Length(a))) then k:=k+1;
   delete(a, pos(b,a), length(b));
  end;
 writeln(k);
 readln;
end.
 
Граматейка что поделать!)))Спасибо!!!!)))
 
Здравствуйте еще раз!!!Показала задачи преподавателю а он мне сказачто нужно сделать по другому как то вот так что бы при работе с массивами обязательно должны быть процедуры ввода, вывода и
процедуры или функции решения задачи.А я не знаю как это вставить в ваши задачи что бы ничего не испортить. Посмотрите пожалуйста можно что то с этим сделать.
Например

Const n=100;
Type mas1= array[1..n] of integer;
Var a:mas1; c,d : integer;
Procedure Vvod1(var a:mas1);
var i:integer;
begin
for i:=1 to n do a:=random(1000);
end;
Procedure Print1(var a:mas1;n:integer);
var i:integer;
begin
for i:=1 to n do write(a:4);
writeln;
end;
Procedure Р(...) или Function F(...):<тип> для решения задачи.
Зарание спасибо!!!!
 
Здравствуйте!Выручите пожалуйста!!!Посмотрите кто нибудь!)
 
Назад
Сверху