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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 670
от 16.09.2008, 00:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 220, Экспертов: 40
В номере:Вопросов: 6, Ответов: 10

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


Вопрос № 143522: Здравствуйте уважаемые эксперты! Помогите с решением задачи пожалуйста. Задача следующая: Нужно сделать калькулятор, работающий с целыми числами, которые представлены в римской системе счисления. Калькулятор должен выполнять следующии функ...
Вопрос № 143529: Здравствуйте, уважаемые эксперты, нуждаюсь в вашей помощи. Помогите пожалуйста решить такие вот задания: 1.В десятичной записи числа 42**4 замените звездочки цифрами, если известно, что число кратно 72. Выведите найденные числа на экран. <b...
Вопрос № 143544: Даны действительные числа a, b, c. Проверить, выполняются ли неравенства a < b < c....
Вопрос № 143545: Даны действительные положительные числа a, b, c, d. Выяснить можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами c, d так, чтобы каждая из ст орон одного прямоугольника была параллельна или перпендикулярна каждой сторо...
Вопрос № 143601: Здравствуйте! Помогите пожалуйста написать следующие программы: 1 Написать программу, определяющую сколько времени в целом за семестр по каждой дисциплине должно отводиться студентом на домашнюю подготовку (в часах), при условии, что самостоят...
Вопрос № 143606: Заданы координаты 3-х вершин треугольника (х1,у1).(х2,у2).(х3,у3). Найти его периметр и полощадь. И если можно помогите вторую решить просто я не понемаю смысл задачи просто их надо решать через модуль мне главное чтоб понять как она будут рабо...

Вопрос № 143.522
Здравствуйте уважаемые эксперты! Помогите с решением задачи пожалуйста. Задача следующая:
Нужно сделать калькулятор, работающий с целыми числами, которые представлены в римской системе счисления.

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



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

Отвечает: Пупорев Юрий Борисович
Здравствуйте, Crazyben!
Делать настоящий калькулятор в Паскале очень хлопотно, нужно много времени, поэтому предлагаю Вам программу, выполняющую арифметические действия с числами в римской записи.
Код программы в приложении.

Приложение:

Ответ отправил: Пупорев Юрий Борисович (статус: Специалист)
Ответ отправлен: 11.09.2008, 14:17
Оценка за ответ: 5


Вопрос № 143.529
Здравствуйте, уважаемые эксперты, нуждаюсь в вашей помощи. Помогите пожалуйста решить такие вот задания:

1.В десятичной записи числа 42**4 замените звездочки цифрами, если известно, что число кратно 72. Выведите найденные числа на экран.

2. Составьте программу вывода на экран всех делителей натурального числа N.

3.Составьте программу вычисления первых десяти членов последовательности формулами n-ого члена: х-нный= 2^n + 3
Буду очень благодарен помощи.
Отправлен: 10.09.2008, 06:20
Вопрос задал: 6o6puk (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Шичко Игорь
Здравствуйте, 6o6puk!
Коды для решения в приложении под номерами 1, 2, 3
Во втором вопросе не учитываются делители 1 и N (которые всегда являются делителями числа)

Приложение:

Ответ отправил: Шичко Игорь (статус: 2-ой класс)
Ответ отправлен: 10.09.2008, 08:48
Оценка за ответ: 5

Отвечает: Витек
Здравствуйте, 6o6puk!
var
i,n:integer;
begin
for i:=0 to 99 do
begin
n:=(4200+i)*10+4;
if (n mod 72 = 0) then writeln(i);
end;
readln;
end.

---------
ohne fleis, keine preis
Ответ отправил: Витек (статус: 3-ий класс)
Ответ отправлен: 11.09.2008, 08:07


Вопрос № 143.544
Даны действительные числа a, b, c. Проверить, выполняются ли неравенства a < b < c.

Приложение:

Отправлен: 10.09.2008, 10:08
Вопрос задал: Николаев Денис Игоревич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Витек
Здравствуйте, Николаев Денис Игоревич!
var
a,b,c:real;
begin
ReadLn(a,b,c);
if (a<b)and(b<c) then
writeln('Неравенство выполняется')
else writeln('Неравенство не выполняется');
read;
end.
---------
ohne fleis, keine preis
Ответ отправил: Витек (статус: 3-ий класс)
Ответ отправлен: 11.09.2008, 08:06
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо.


Вопрос № 143.545
Даны действительные положительные числа a, b, c, d. Выяснить можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами c, d так, чтобы каждая из сторон одного прямоугольника была параллельна или перпендикулярна каждой стороне второго прямоугольника.

Приложение:

Отправлен: 10.09.2008, 10:10
Вопрос задал: Николаев Денис Игоревич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

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

Программа в приложении.
По программе: использованна подпрограмма mMax для того, чтобы уменьшить количество условных операторов.
Без подпроограммы нужно было бы каждую из строн одного прямоугольника сравнивать со стронами другого, а так сравнивается только большая сторона с большей, а меньшая с меньшей.
Удачи!

Приложение:

---------
Итерация от человека, рекурсия — от Бога (Питер Дойч)

Ответ отправил: Зенченко Константин Николаевич (статус: Профессор)
Украина, Киев
Тел.: +380979536619
Адрес: Украина г.Киев
----
Ответ отправлен: 12.09.2008, 12:52


Вопрос № 143.601
Здравствуйте! Помогите пожалуйста написать следующие программы:

1 Написать программу, определяющую сколько времени в целом за семестр по каждой дисциплине должно отводиться студентом на домашнюю подготовку (в часах), при условии, что самостоятельная работа студента составляет 30% от объема аудиторных часов по дисциплине. Рассчитать, сколько в среднем каждый день студент должен отводить времени на домашнюю подготовку.
2 Найти значение функции
где a= 0.5, b=1.3. Значение x>0 (тип данных: Real) вводится с клавиатуры.
3 Написать программу, которая выводит пример на вычитание, запрашивает ответ пользователя, проверяет его и выводит сообщение "Правильно!" или "Вы ошиблись" и правильный результат.
4 Написать программу, которая вводит с клавиатуры 5 дробных чисел и вычисляет их среднее арифметическое.
5 Найдите все двузначные числа, сумма цифр которых не меняется при умножении числа на 2, 3, 4, 5, 6, 7.
6 Написать программу, к оторая определяет количество студентов в группе, чей рост превышает средний.
7 Найти количество положительных элементов двумерного массива, кратных 5.
Спасибо!
Отправлен: 10.09.2008, 20:42
Вопрос задал: Polmer12 (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: SHERRY
Здравствуйте, Polmer12!
3.
Код:
var
a,b,rez: integer;
begin
randomize; {запускаем генератор случайных чисел}
a:=random(100); b:=random(100); {числа а и b генерируются на промежутке [0;100)}
writeln(a,' - ',b,' = ???'); {выводим пример на экран}
readln(rez); {запрашиваем ответ от пользователя}
writeln(rez=(a-b)); {сравниваем на правильность}
writeln(a-b); {выводим правильный вариант}
readln;
end.



7.
Массив составляется из случайно сгенерированных целых чисел из промежутка [-30; 101)
Код:
const
n = 5;
var
ms: array [1..n, 1..n] of integer;
i,j,count: integer;
begin
randomize;
count := 0; {эта переменная будет "подсчитывать" количество элементов массива, удовлетворяющих Вашему условию}
for i:=1 to n do
begin
for j:=1 to n do
begin
ms[i,j] := random(101) - 30; {заполненяем ячейку массива}
if (ms[i,j] > 0) and (ms[i,j] mod 5 = 0) {проверяем число на положительность и делимость на 5 без остатка}
then inc(count); {если результат условия удовлетворительный, то увеличиваем значение переменной count на единичку}
write(ms[i,j]:4); {выводим элемент массива на экран}
end;
writeln; {после того, как один ряд массива выведен на экран, переходим на следующую строку}
end;
writeln; {пропускаем строку}
writeln(count); {выводим на экран показание счётчика}
readln;
end.

---------
Самурай без меча подобен самураю с мечом, только без меча..
Ответ отправил: SHERRY (статус: Студент)
Ответ отправлен: 10.09.2008, 21:04

Отвечает: Абельхарисов Руслан/Marked One
Здравствуйте, Polmer12!
Задача №5 с комментариями в приложении.
Удачи!!!

Приложение:

Ответ отправил: Абельхарисов Руслан/Marked One (статус: Студент)
Ответ отправлен: 10.09.2008, 22:28

Отвечает: ualife
Здравствуйте, Polmer12!
∙ 2. К сожалению вы не указали саму функцию
Код:
program E2;
var a,b,x,y:real;
begin
a:=0.5; {Наши переменные}
b:=1.3;
readln(x); {Ждем ввода значения x}
if x<=0 then writeln('Error') {Если x<=0, то ввыводим сообщение 'Error'}
else {Если x>0}
begin
y:=a*(x+1)+b; {Замените нужной формулой. Не забывайте, что символ * - символ умножения, / - символ деления, sqr - квадрат числа (например, sqr(5))}
writeln(y); {Выводим значение y}
end;
end.

∙ 4.
< div>Код:
program E4;
var a: array [1..5] of real;
var s: real;
begin
readln(a[1],a[2],a[3],a[4],a[5]); {просим пользователя ввести числа}
s:=(a[1]+a[2]+a[3]+a[4]+a[5])/5; {вычисляем среднее арифметическое}
writeln(s); {выводим}
end.

∙ 5.
Код:
program E5;
var i,j,z,x,ch,a,b,c: integer;
begin
for i:=1 to 9 do {i - количество десятков числа}
begin
for j:=0 to 9 do {j - количество едениц числа}
begin
z:=0; {z - дополнительная переменная}
for x:=2 to 7 do {в переменную x подставляются числа от 2 до 7}
begin
ch:=(10*i+j)*x; {ch - новое число}
a:=trunc(ch/100); {a - кол-во сотень нового числа}
b:=trunc(ch/10)-a*10; {b - количество десятков нового числа}
c:=ch-a*100-b*10; {c - количество едениц нового числа}
if (a+b+c)=i+j then z:=z+1 {если суммы цифр нового и старого числа совпадают, то добавить к переменной z еденицу}
end;
if z=6 then writeln(10*i+j, ', ', -(10*i+j), '.'); {если в переменной z - 6, то выводим число}
end;
end;
readln(z)
end.

∙ 6.
Код:
program e6;
const n=3; {Задаем кол-во студентов}
var a: array [1..n] of real;
var i:integer;
var d:real;
var x:integer;
begin
writeln('Введите рост каждого студента по списку:');
for i:=1 to n do
begin
write(i, ' ');
readln(a[i]); {Считываем рост каждого студента}
d:=d+a[i];
end;
d:=d/n; {Вычисляем среднее арифметическое}
for i:=1 to n do if a[i]>d then x:=x+1; {Если у студента рост больше среднего, то добавляем к x еденицу}
writeln('У стольких студентов рост превышает среднего: ', x)
end.

Удачи!
Ответ отправил: ualife (статус: Практикант)
Ответ отправлен: 10.09.2008, 23:40


Вопрос № 143.606
Заданы координаты 3-х вершин треугольника (х1,у1).(х2,у2).(х3,у3). Найти его периметр
и полощадь.
И если можно помогите вторую решить просто я не понемаю смысл задачи просто их надо решать через модуль мне главное чтоб понять как она будут работать остальное я сам сделаю: Ввести последовательность символов, предшествующих символу * и выяснить сколько среди букв S,R,A. все буквы S заменить на точку. Мне уже завтра надо Помогите!!!!!!!!!!!!!
Отправлен: 10.09.2008, 21:16
Вопрос задал: Bekirov (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: SHERRY
Здравствуйте, Bekirov!
© Цитата: Bekirov
Ввести последовательность символов, предшествующих символу * и выяснить сколько среди букв S,R,A. все буквы S заменить на точку.

Последовательность символов ~ строка. От этого и будем исходить.
Код:
var
posl: string; {В этой переменной будем хранить последовательность}
S,R,A: byte; {переменные-счётчики для соотв. символов}
i: byte; {переменная-индекс}
begin
S := 0; R := 0; A := 0; {инициализация}
Write('Type your string now: '); {"приветствие"}
Readln(posl); {считываем последовательность}
for i:=1 to length(posl) do {пробегаем по всем символам}
case posl[i] of {и смотрим}
'S': begin inc(S); delete(posl, i,1); insert('.', posl,i); end; {если найдём символ S , то удалим его из строки, вместо него вставим точку и увеличим счётчик на единичку}
'R': inc(R); {если найден символ R увеличиваем переменную R на единичку}
'A': inc(A); {догадайтесь сами ;)}
end;
writeln;
writeln(posl); {выводим обработанную последовательность на экран}
writeln('S = ', S, '; R = ', R, '; A = ',A,'.'); {и подсчитанные символы}
readln;
end.


Можно ещё поступить следующим образом:
считывать последовательность с клавиатуры посимвольно и проверять на предмет Вашего условия. Результат тот же, но работать будет медленнее. Счит анные символы будем хранить в строке, ибо нужно видеть результат
© Цитата: Bekirov
все буквы S заменить на точку.

Итак..
Код:

var
posl: string; {здесь будем хранить все символы}
S,R,A: byte; {это по прежнему счётчики}
ch: char; {в эту переменную будем помещать считанный с клавиатуры символ}
i: byte;
begin
S := 0; R := 0; A := 0; posl := ''; {инициализация}
Writeln('Type your symbols now (`*` is last)');
Repeat
read ln(ch);
case ch of
'S': begin inc(S); ch := '.'; end;
'R': inc(R);
'A': inc(A);
end;
posl := posl + ch;
Until ch = '*';
writeln;
writeln(posl);
writeln('S = ', S, '; R = ', R, '; A = ',A,'.');
readln;
end.



Разбирайтесь. Если будут вопрос - обращайтесь в мини-форум или ЛС.
Best regard's!
---------
Самурай без меча подобен самураю с мечом, только без меча..
Ответ отправил: SHERRY (статус: Студент)
Ответ отправлен: 10.09.2008, 22:12
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо!

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

Программа 1:
Код:
var
a:real;
x1,y1,x2,y2,x3,y3:integer;
begin
{вводим координаты}
write('x1:');readln(x1);
write('y1:');readln(y1);
write('x2:');readln(x2);
write('y2:');readln(y2);
write('x3:');readln(x3);
write('y3:');readln(y3);
{считаеим периметр и выводи результат}
a:=sqrt(sqr(x1-x2)+sqr(y1-y2))+sqrt(sqr(x1-x3)+sqr(y1-y3))+sqrt(sqr(x3-x2)+sqr(y3-y2));
writeln('P:=',a);
{считаем полупериметр и выводим площадь}
a:=a/2;
writeln('S:=',sqrt(a*(a-sqrt(sqr(x1-x2)+sqr(y1-y2)))*
(a-sqrt(sqr(x3-x2)+sqr(y3-y2)))*
(a-sqrt(sqr(x1-x3)+sqr(y1-y3)))));
readln;
end.

Всё считается по формуле Герона:


длины сторон по формуле Пифагора:


Программа 2:
Код:
uses
crt;
var
a:string;
b:char;
cA,cS,cR:integer;
begin
{сбрасываем счетчики}
cA:=0;
cR:=0;
cS:=0;
write('Enter you string: ');
repeat
{вводим без эхо, и выводим символ}
b:=ReadKey;
write(b);
{считаем нужные символы}
case b of
'S':begin
inc(cS);
b:='.';
end;
'R':inc(cR);
'A':inc(cA);
end;
a:=a+b;
until b='*';
{выводим результаты}
writeln;
writeln('Result:':17,a);
write('A:=',cA,'R:=':5,cR,'S:=':5,cS);
readln;
end.

В программе организован контролируемый ввод, практически при такой схеме Вы можете делать, что угодно.
Удачи!
---------
Итерация от человека, рекурсия — от Бога (Питер Дойч)
Ответ отправил: Зенченко Константин Николаевич (статус: Профессор)
Украина, Киев
Тел.: +380979536619
Адрес: Украина г.Киев
----
Ответ отправлен: 10.09.2008, 22:34
Оценка за ответ: 5
Комментарий оценки:
Большое спосибо!!


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

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

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

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

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

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


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


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

∙ Версия системы: 5.3 RC 2 от 09.09.2008

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

В избранное