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

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

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

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

Срочно нужна помощь

Статус
В этой теме нельзя размещать новые ответы.

Tru-lya-lya

Новые
Регистрация
11 Дек 2011
Сообщения
12
Реакции
0
Баллы
0
Срочно нужна помощь

нужно решить 2 задачи на паскале abc. помогите пожалуйста..завтра нужно сдать..не успеваю=(

1.Счастливым будет считаться такое число из шести цифр, в котором сумма левых трех цифр равна сумме правых трех цифр.Например: 457961
4+5+7 = 9+6+1. Вывести на экран все счастливые числа в интервале от А до В и подсчитать их количество.

2. Написать программы, при выполнении которых в целочисленном массиве определяется число соседств простого числа и четного с нечетным индексом.
 
2. Написать программы, при выполнении которых в целочисленном массиве определяется число соседств простого числа и четного с нечетным индексом.
Код:
Const
 N=40;
Var
 A:Array[1..N] of Byte;
 i,Nn:Byte;

Function Prime(p:byte):Boolean;
var b:boolean; m:byte;
begin
 b:=false;
 If p>3 then
  begin
   m:=(p div 2)+1;
   Repeat
    Dec(m);
    If (p mod m)=0 then b:=true;
   Until b or (m=2);
  end;
 Prime:=Not(b);
end;

Begin
 Randomize;
 Nn:=0;
 For i:=1 to N do
  begin
   A[i]:=Random(99)+1;
   Write(A[i]:4);
  end;
 Writeln;
 Writeln;
 For i:=1 to (N div 2) do
  begin
   If Prime(A[2*i]) and ((A[2*i-1] mod 2)=0) then
    begin
     Inc(Nn);
     Writeln('A[',(2*i-1):2,']=',A[2*i-[COLOR=Red]1[/COLOR]]:2,' - even,    A[',2*i:2,']=',A[2*i]:2,' - prime');
    end;
   If (2*i<N) and Prime(A[2*i]) and ((A[2*i+1] mod 2)=0) then
    begin
     Inc(Nn);
     Writeln('A[',2*i:2,']=',A[2*i]:2,' - prime,   A[',(2*i+1):2,']=',A[2*i+1]:2,' - even');
    end;
  end;
 Writeln;
 Writeln(Nn,' pairs');
 Readln;
End.
 
ооой...а вы бы не могли пояснить как тут все работает?? как-то сложно все написано)))
в этой задачке вроде нужно 2 решения? или как??? или вы решили все в одном решении??? расскажите пожалуйста что вы делали?
 
О!! мне тоже нужна ваша первая задачка!!! =)
 
я так понимаю здесь одна задача посчитать число соседств простого числа, а вторая программулинка определить число четных чисел с нечетным индексом...вот...((
 
1.Счастливым будет считаться такое число из шести цифр, в котором сумма левых трех цифр равна сумме правых трех цифр.Например: 457961 4+5+7 = 9+6+1. Вывести на экран все счастливые числа в интервале от А до В и подсчитать их количество.
Значит так, поскольку требуется вывести результат на экран, в программе ограничено количество "счастливых" чисел двумястами штуками. Если их получается больше, то предлагается сузить диапазон.
Проверить можно, задав, например, 100000 - 108420 (тут их ровно 200).
Код:
VAR
 A:Array[1..200] of LongInt;
 Nmin,Nmax,k,n1,n2:LongInt;
 N,i,j:Byte;
BEGIN
 REPEAT
  N:=0;
  Write('Nmin= ');
  Readln(Nmin);
  Write('Nmax= ');
  Readln(Nmax);
  k:=Nmin-1;
  Repeat
   Inc(k);
   n1:=(k div 100000)+((k mod 100000) div 10000)+((k mod 10000) div 1000);
   n2:=((k mod 1000) div 100)+((k mod 100) div 10)+(k mod 10);
   If n1=n2 then
    Begin
     Inc(N);
     If N>200 then
      Writeln('Too wide range! Narrow it!')
     else
      begin
       A[N]:=k;
      end;
    End;
  Until (N>200) or (k=Nmax);
 UNTIL N<=200;
 For i:=1 to 20 do
  For j:=1 to 10 do
   begin
    k:=(i-1)*10+j;
    if k<=N then write(A[k]:8);
   end;
 Writeln;
 Writeln('N= ',N);
 Readln;
END.
 
ооой...а вы бы не могли пояснить как тут все работает?? как-то сложно все написано)))
в этой задачке вроде нужно 2 решения? или как??? или вы решили все в одном решении??? расскажите пожалуйста что вы делали?
Ну тогда значит я не понял формулировки условия. Здесь так:
1. Формируется массив.
2. В нем ищутся простые числа, стоящие на четных позициях (функция Prime - это проверка того, простое число или нет; если простое - возвращает true).
3. Проверяется, является ли предыдущий или последующий, иначе говоря, "соседний" элемент массива четным. И если да, то эта пара (простое плюс сосед) выводится на экран.

А как надо было?
Вероятно, я не так понял термин "соседство". Разъясните, пожалуйста. Что-то мне помнится, была какая-то хрень с таким названием то ли из теории множеств, то ли из теории чисел.
 
счастливые числа!


PROGRAM schastlivyi_bilet;
Uses crt;
var a,b,i,kol:integer;
Procedure S(a,b:integer);
var x,l,h,g,j,r,sumL,sumR:integer;
begin
kol:=0;
for i:=a to b do
begin
sumL:=0;
g:=i;
sumR:=0;
r:=0;
l:=i;
x:=0;
h:=i;

while l>0 do
begin
l:=l div 1000 ;
x:=x+1;;
end;
for j:=1 to x div 2 do
begin
r:=h mod 1000;
h:=h div 1000;
sumR:=sumR+r;
end;
for j:=x div 2+1 to x do
begin
r:=h mod 1000;
h:=h div 1000;
SumL:=SumL+r;
end;
if SumR=SumL then begin
write(g:8);
kol:=kol+1; end;
end;
end;

begin
Write('Введите отрезок от А(>100 000) до Б(<1000 000): ');
readln(a,b);
s(a,b);
write ('Количество счастливых билетов в промежутке от ',a,' до ',b,' = ',kol:4);
end.
 
Спасибо=)

я так подумала, в принципе вы правы! и правильно написали все и поняли задание... только вот я тестирую ваше решение и она немного некорректно работает....или я что-то не так делаю..:tehnari_ru_281:
 
счастливые числа!
Не пойдёт! Вы сделали отбор не по суммам цифр, а по простому равенству правой и левой частей.
Попробуйте запустить мою программу, только если у Вас этот... АВС, то замените формат LongInt форматом Integer.
 
Спасибо=)

я так подумала, в принципе вы правы! и правильно написали все и поняли задание... только вот я тестирую ваше решение и она немного некорректно работает....или я что-то не так делаю..:tehnari_ru_281:
Конкретнее, пожалуйста, - что не так? Я ведь тоже, прежде чем выложить, программу тестировал, и вроде как всё корректно. Правда, у меня нормальный Паскаль, а не это.
 

2-ая программулечка некорректно вроде бы рабоет...
 
2-ая программулечка некорректно вроде бы рабоет...
Знаете - я бы очень хотел Вам помочь, но... пока Вы ограничиваетесь всякими там "некорректно вроде бы" - увы, бессилен. Напишите подробно, в чем выражается некорректность, какие сообщения появляются на экране, где ошибки - тогда разберемся. Единственно сразу - если у Вас этот (т.н. Паскаль АВС), то Longint следует заменить на Integer.
К сожалению, сейчас вставка картинок на нашем форуме временно не работает, придется дать ссылки на хостинг. Сейчас попробую сделать скриншоты результатов работы обеих программ и выложу ссылки, чтобы Вы могли сравнить.
 
75 64 2 5 26 95 83 39 28 73 95 44 13 57 29 11 77 57 13 54

А[3]=64 - even, А[4]=5 - prime,
А[4]=5 - prime, А[5]=26 - even,
А[9]=39 - even, А[10]=73 - prime,



значит 3-ий элемент = 2, а не 64
4ый элемент показывает правильно
9-ый элемент - 28, а не 39
 
значит 3-ий элемент = 2, а не 64 4ый элемент показывает правильно 9-ый элемент - 28, а не 39
Да-да, извините, сам уже нашел - есть одна описка: в выводе вместо 2*i-1 у меня 2*i-2. Сейчас исправлю.
Исправил. Там даже красным цветом эту единицу отметил.
Да, и вот скриншоты на всякий случай:
a101.webp fp01.webp
 
вооот! спасибо!))) теперь понятно) теперь работает...
только вот как мне на русский перевести "even")) это же "даже" на русском) а в программе это слово какое значение имеет? ))
если оставлю как вы написали - не поверят же мне,что я сама делала)):tehnari_ru_707:
 

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