Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Botsman
Статус: Студент
Рейтинг: 177
∙ повысить рейтинг >>
Micren
Статус: Практикант
Рейтинг: 97
∙ повысить рейтинг >>
Пупорев Юрий Борисович
Статус: Специалист
Рейтинг: 65
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 844
от 04.04.2009, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 248, Экспертов: 41
В номере:Вопросов: 9, Ответов: 11

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 163572: Здравствуйте.Помогите пожайлуста решить задачю.Отблагодарю финансово. Ввести с клавиатуры границы диапазона двузначных чисел. Из этих чисел необходимо напечатать только те, цифры которых являються соседними в натуральном ряду. Подсчитать коли...


Вопрос № 163573: Здравствуйте.Помогите пожайлуста решить программу. Составить программу, вырезающую из файла с текстом программы на языке Turbo-Pascal все комментарии....
Вопрос № 163586: Дан массив из пяти строк. В строке "наименование завода_количество выпускаемой продукции". Вычислить общее количество выпускаемой продукции, распечатать наименование завода, выпустившего максимальное количество ...
Вопрос № 163587: 4.Дан вещественный вектор А(10) такой, что а1 <= а2 <=...<= а10 и число х. Построить вектор С(11) из А и х, упорядоче нные по невозрастанию. ...
Вопрос № 163597: Привет. Помогите написать программу: Определить, является ли строка правильным скобочным выражением. Для определенности можно ограничиться только круглыми скобками. Вот я написал, но она не работает и я уже не знаю че в ней можно изменить или допи...
Вопрос № 163619: Здравствуйте, помогите, пожалуйста, написать программу в Turbo Pascal с использованием процедур, задание такое На плоскость задаются координаты N произвольных точек. Выделить среди них две точки, расстояние между которыми максимально и две точки, рас...
Вопрос № 163635: Здравсвуйте эксперты, подскажите пожалуйста, почему следующий код заливает весь экран, а не только нарисованый квадрат, и как это исправить? Вырезал из другой программы, поэтому куча лишних переменных обьявлена. Заранее спасибо)...
Вопрос № 163647: Здравствуйте! Помогите пожалуйста написать программу на даннное задание: На шахматной доске стоят черный король и три белые ладьи (ладья бьет по горизонтали и вертикали). Проверить, не находится ли король под боем, а если есть угроза, то от кого имен...
Вопрос № 163663: Здравствуйте уважаемые эксперты!Помогите в решении задачи: Составить программу и блок-схему Дан двумерный массив. Поменять местами его строки( четные с нечетными)...

Вопрос № 163.572
Здравствуйте.Помогите пожайлуста решить задачю.Отблагодарю финансово.

Ввести с клавиатуры границы диапазона двузначных чисел. Из этих чисел необходимо напечатать только те, цифры которых являються соседними в натуральном ряду. Подсчитать количество этих чисел и определить, сколько среди них четных и нечетных. Предусмотреть проверку правильности ввода информации.
Отправлен: 29.03.2009, 19:39
Вопрос задал: Петешов Иван Анатольевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Киселева Светлана Александровна
Здравствуйте, Петешов Иван Анатольевич!
Надеюсь, что идея программы будет понятна. У меня f - переменная-"флажок", которая будет хранить назначенное ей нами значение 0 до тех пор, пока данных нетили данные введены некорректно (левая граница диапазона меньше правой, или границы диапазона - не двузначные числа). Если данные корректны, то f меняет свое значение на 1, и мы выходим из цикла ввода данных. Далее переменные, отвечающие за количества предварительно обнуляются, организуется цикл for по заданному диапазону. В цикле каждое текущее двузначное число i разбиваем на цифры p и v. Если разница между ними по модулю равна 1 (какая из цифр на 1 больше: первая или вторая - мы ведь угадать не можем!), то кол-во искомых чисел увеличиваем на 1, выводим число на печать, а также делаем проверку на чет-нечет: если остаток от деления i на 2 равен 0, то число четное, иначе - нечетное, соответсвующее кол-во должно увеличиться на 1. После цикла перейдем на следующую строку (wri teln;), и выведем два сообщения в отдельных строках о кол-ве четных и нечетных среди найденных чисел. Вроде все.
program chisla;
var
a,b:byte; {границы диапазона}
p,v:byte; {первая и вторая цифры числа}
kol, Kol_chet, Kol_nechet:byte; {общее кол-во искомых чисел, кол-во четных и нечетных чисел}
i,f: byte;
BEGIN
f:=0;
while f = 0 do
begin
writeln('Vvedite diapazon dvuznachnyh chisel:');
write('Levaya granica a='); readln(a);
write('Pravaya granica b='); readln(b);
if (a<b) and (a<=99) and (b<=99) and (a>=10) and (b>=10) then f:=1
else writeln('Dannye nekorrektny');
end;
Kol:=0;
Kol_chet:=0;
kol_nechet:=0;
for i:=a to b do
begin
p:=i div 10;
v:=i mod 10;
if abs(p-v)=1 then begin
Kol:=kol+1;
write(i:3);
if i mod 2=0 then kol_chet:=kol_chet+1
else Kol_nechet:=kol_nechet+1;
end;
end;
writ eln;
writeln('Kolichestvo chetnyh ravno ',kol_chet);
writeln('Kolichestvo nechetnyh ravno ',kol_nechet);
readln;
End.


Удачи!
Ответ отправила: Киселева Светлана Александровна (статус: 1-й класс)
Ответ отправлен: 30.03.2009, 13:52

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246373 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 163.573
    Здравствуйте.Помогите пожайлуста решить программу.

    Составить программу, вырезающую из файла с текстом программы на языке Turbo-Pascal все комментарии.
    Отправлен: 29.03.2009, 19:46
    Вопрос задал: Петешов Иван Анатольевич (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Бизин Михаил Анатольевич
    Здравствуйте, Петешов Иван Анатольевич!
    Код в приложении.
    Компилируете, получаете Exe-шник, запускаете его с параметром,
    в качестве которого выступает файл с комментариями, например:
    CutComm.exe CutComm.pas
    На экран выйдет содержимое файла с вырезанными комментариями.
    Если хотите сохранить в файл, используйте DOS-овскую возможность перенаправления потока вывода,
    Например:
    CutComm.exe CutComm.pas > Outfile.pas
    Программа распознаёт директивы.

    Приложение:

    Ответ отправил: Бизин Михаил Анатольевич (статус: 3-й класс)
    Ответ отправлен: 31.03.2009, 18:18

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246505 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 163.586

    Дан массив из пяти строк. В строке "наименование завода_количество выпускаемой продукции". Вычислить общее количество выпускаемой продукции, распечатать наименование завода, выпустившего максимальное количество


    Отправлен: 29.03.2009, 20:52
    Вопрос задал: смирнов артем владимирович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Пупорев Юрий Борисович
    Здравствуйте, смирнов артем владимирович!
    Решение с пояснениями в приложении.

    Приложение:

    Ответ отправил: Пупорев Юрий Борисович (статус: Специалист)
    Ответ отправлен: 30.03.2009, 10:48

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246351 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 163.587
    4.Дан вещественный вектор А(10) такой, что а1 <= а2 <=...<= а10 и число х. Построить вектор С(11) из А и х, упорядоченные по невозрастанию.





    Отправлен: 29.03.2009, 20:53
    Вопрос задал: смирнов артем владимирович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Botsman
    Здравствуйте, смирнов артем владимирович!
    Помогаю.
    По вашему условию, вектор A дан упорядоченным по неубыванию, поэтому в программе он создается УЖЕ упорядоченным (для простоты заполняется числами от 1 до 10)
    Сам код и комментарии - в приложении.
    Рад был помочь!

    Приложение:

    ---------
    Хочешь победить Excel? Спроси меня как! ;)

    Ответ отправил: Botsman (статус: Студент)
    Ответ отправлен: 30.03.2009, 13:19

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246368 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 163.597
    Привет. Помогите написать программу: Определить, является ли строка правильным скобочным выражением. Для определенности можно ограничиться только круглыми скобками.
    Вот я написал, но она не работает и я уже не знаю че в ней можно изменить или дописать.....
    Program z1;
    var
    s:string;
    i, rask, zakr : integer;
    Begin
    Write('Vvedite striky');
    Readln(s);
    rask:=0;
    zakr:=0;
    For i:=1 to length(s) do
    begin if s='(' then rask=rask+1;
    if s=')' then zakr=rask+1;
    end;
    if rask<>zakr then
    write('ne pravilno')
    else write('pravilno');
    readln;
    End.
    Отправлен: 29.03.2009, 21:44
    Вопрос задал: Тихонов Алексей Александрович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 2)

    Отвечает: Киселева Светлана Александровна
    Здравствуйте, Тихонов Алексей Александрович!
    Попробуйте решить Вашу задачу таким способом: вам не нужны две переменные на подсчет открывающихся и закрывающихся скобок, достаточно одной, пусть это будет переменная rask. Если встретилась скобка открывающаяся, то увеличим значение этой переменной на 1, если закрывающаяся - уменьшим ее значение на 1. Еще я бы взяла не цикл for, а цикл while по следующим соображениям: если количество закрывающихся скобок на каком-то проверяемом символе больше, чем открывающихся (rask < 0), то очевидно, что выражение УЖЕ записано неправильно (например, '(ыов)вао)фыво(' - такая строка) и нет смысла идти с проверкой на следующий символ. Поэтому я завела "флажок"-переменную f, которой изначально присвоила значение 1 (если хотите, можете взять другое понравившееся число, допустим, 7). Пока f = 1 - скобки пока еще поставлены корректно (открывающихся >= закрывающихся). Если же встретилась выше описанная ситуация, то f меняет св оё значение на другое (у меня в программе - на нуль). Тем самым f "сигнализирует" нам - всё, уже неверно, дальше нет смысла проверять.
    Итак, в цикле while мы проверяем два условия - не достигли пока еще конца строки? и в строке пока еще нет ошибочной постановки закрывающейся скобки ПЕРЕД соответствующей ей открывающейся?
    Далее, Ваша ошибочка была в том, что Вам надо не всю строку s проверять - скобка она или нет, а СИМВОЛ s[i], т.е. i-ый символ строки.
    Также неплохо бы после then устраивать не сравнение через "=", а присваивание ":=", тогда компьютер не будет на вас "ругаться" разными сообщениями об ошибке.
    Program z1;
    var
    s:string;
    i, rask : integer;
    f:byte;
    Begin
    Writeln('Vvedite stroky');
    Readln(s);
    rask:=0;
    f:=1;
    i:=1;
    while (i<=length(s)) and (f=1) do
    begin
    if s[i]='(' then rask:=rask+1;
    if s[i]=')' then rask:=rask-1;
    if rask<0 then f:=0;
    i:=i+1;
    end;
    if (rask=0) and (f=1) then write('pravilno') {если всё было корректно: f осталось равно 0}
    {а также кол-во откр. и закр. скобок дало в}
    {разности нуль: rask = 0, то все правильно!}
    else write('ne pravilno');
    readln;
    End.
    Ответ отправила: Киселева Светлана Александровна (статус: 1-й класс)
    Ответ отправлен: 30.03.2009, 13:23

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246370 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 163.619
    Здравствуйте, помогите, пожалуйста, написать программу в Turbo Pascal с использованием процедур, задание такое На плоскость задаются координаты N произвольных точек. Выделить среди них две точки, расстояние между которыми максимально и две точки, расстояние между которыми минимально. Предусмотреть графическую иллюстрацию.
    Отправлен: 30.03.2009, 05:24
    Вопрос задал: Dmitrii3842 (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Бизин Михаил Анатольевич
    Здравствуйте, Dmitrii3842!
    Программа в приложении.
    Графический режим, если сразу не запустится, Вам самому придётся отредактировать процедуру InitBgi.
    Т.к. способ ввода массива точек не указан, то для простоты и быстроты координаты задаются случайными.
    Если нужно заполнение другим образом, нужно переписать процедуру FillArray.
    Результат в текстовом режиме выглядит так:
    Min Distance: between 1 & 4 points, R=13.04
    Max Distance: between 4 & 6 points, R=605.30

    Приложение:

    Ответ отправил: Бизин Михаил Анатольевич (статус: 3-й класс)
    Ответ отправлен: 30.03.2009, 11:25

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246353 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 163.635
    Здравсвуйте эксперты, подскажите пожалуйста, почему следующий код заливает весь экран, а не только нарисованый квадрат, и как это исправить?
    Вырезал из другой программы, поэтому куча лишних переменных обьявлена. Заранее спасибо)

    Приложение:

    Отправлен: 30.03.2009, 11:36
    Вопрос задал: Tribak (статус: Студент)
    Всего ответов: 3
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Зенченко Константин Николаевич
    Здравствуйте, Tribak!

    Добавил, хелп по floodfill(15,15,15); - Вы установили цвет границы, не соответствующему текущему, тому которым нарисован прямоугольник. Изменил координаты области.
    Удачи!

    Приложение:

    Ответ отправил: Зенченко Константин Николаевич (статус: Профессор)
    Ответ отправлен: 30.03.2009, 12:12

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246361 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Бизин Михаил Анатольевич
    Здравствуйте, Tribak!
    У Вас команда заливки FloodFill(X,Y,BorderColor) третьим параметром требует цвет границы, за которым закрашивать не надо.
    Установите BorderColor таким же, как цвет, которым рисуется квадрат.
    В данном случае закрасится область за пределами квадрата.
    Если хотите закрасить область внутри квадрата, поместите координаты X,Y внутрь квадрата.

    Попробуйте такую вставку:

    SetColor(YELLOW);
    rectangle(10,10,100,100);
    SetFillStyle(1,GREEN);
    floodfill(11,11,YELLOW);
    Ответ отправил: Бизин Михаил Анатольевич (статус: 3-й класс)
    Ответ отправлен: 30.03.2009, 12:19

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246362 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Киселева Светлана Александровна
    Здравствуйте, Tribak!
    Наверное,я смогу помочь.
    Вот этот фрагмент:
    rectangle(10,10,100,100);
    floodfill(5,5,1);

    я бы записала так:
    SetColor(3); {установка цвета контура квадрата - голубой}
    rectangle(10,10,100,100); {рисование контура квадрата}
    SetFillStyle(1,2); {установка стила закраски: 1 - сплошной; 2 - зеленая заливка}
    floodfill(20,20,3); {координаты точки ВНУТРИ квадрата (20;20), 3 - цвет КОНТУРА, }
    {которым БЫЛ НАРИСОВАН квадрат}
    Надеюсь, поможет...
    Удачи!
    Ответ отправила: Киселева Светлана Александровна (статус: 1-й класс)
    Ответ отправлен: 30.03.2009, 12:54

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246364 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 163.647
    Здравствуйте! Помогите пожалуйста написать программу на даннное задание: На шахматной доске стоят черный король и три белые ладьи (ладья бьет по горизонтали и вертикали). Проверить, не находится ли король под боем, а если есть угроза, то от кого именно.
    Использовать массив размерностью 8*8. Позицию каждой фигуры в обычной нотации(d7) или парой чисел(4;7)
    Отправлен: 30.03.2009, 14:35
    Вопрос задала: Грязнева Ольга Михайловна (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Пупорев Юрий Борисович
    Здравствуйте, Грязнева Ольга Михайловна!
    Решение с пояснениями в приложении. Над оформлением вывода можно еще работать как в текстовом, так и в графическом режиме, здесь по сути только алгоритм.

    Приложение:

    Ответ отправил: Пупорев Юрий Борисович (статус: Специалист)
    Ответ отправлен: 31.03.2009, 14:11

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246493 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 163.663
    Здравствуйте уважаемые эксперты!Помогите в решении задачи:
    Составить программу и блок-схему
    Дан двумерный массив. Поменять местами его строки( четные с нечетными)
    Отправлен: 30.03.2009, 16:09
    Вопрос задал: dmi_5116 (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Костя Симанович
    Здравствуйте, dmi_5116!

    Решение задачи в приложении, если кол-во строк нечетное, то последняя строка не трогается.
    алгоритм простой берём оба числа первой строки записываем в buf, buf2, в первую строку записываем переменные второй строки, на место второй строки записываем переменные из buf, buf2.

    Удачи.

    Приложение:

    Ответ отправил: Костя Симанович (статус: Студент)
    Ответ отправлен: 30.03.2009, 16:28

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246392 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное