Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Парочка задачек на Turbo Pascal'е

Автор: Minister
Дата сообщения: 18.10.2001 18:10
Мне необходимо решить парочку задачек на Turbo Pascal'е.
Вот условия:
1)Ввести с клавиатуры три символа. Если хотя бы 2 из них являются цифрами, вывести все символы в строчку через три пробела.
2)В последовательности латинских букв, заканчивающейся точкой, преобразовать строчные буквы в прописные.

Это простые задачки, но в смысл я никак не могу врубиться.
Если можно, то напишите, пожалуйста, сразу код этих двух задач.
Автор: Daredevil
Дата сообщения: 18.10.2001 23:02
Эх, сейчас я паскаль уже не вспомню, но, в общем, это делается примерно так. Обе задачки на использование функции преобразования символа в его код.

1) Запрос 3х символов (вместе или раздельно?), поочередная их проверка на попадание кода символа в диапазон 48-57 в десятиричной системе (коды цифр 0-9), вывод трех символов при положительном результате.

2)Тут та же система. Получаем строку, ищем в ней точку и к коду каждого символа добавляем/отнимаем определенное число, приводящее к смене регистра, формируем новую строку и выводим на экран.

Вот так, вроде ничего не забыл. Ну и полезно вставить различные проверки на допустимость символов, наличие точки во втором примере.
Автор: Minister
Дата сообщения: 19.10.2001 06:07
А ты не мог бы, если тебе не трудно, написать мне исходный код?
Плиззз..
Автор: L0Ve
Дата сообщения: 19.10.2001 07:25
Daredevil
Сразу видно... Не программер...

Minister
1.

Код:
var a:char;
i,count:byte;
s:string;
begin
for i:=1 to 3 do begin
read(a);
if a in ['0'..'9'] then inc(count);
s:=s+' '+a;
end;
if count>=2 then writeln(s);
end.
Автор: Minister
Дата сообщения: 19.10.2001 12:49

Цитата:
Сразу видно... Не программер...

Извини меня, но у нас так ВУЗе обучают.
Автор: L0Ve
Дата сообщения: 19.10.2001 12:51
Minister

Цитата:
Извини меня, но у нас так ВУЗе обучают.

Это ж я не тебе... Тебе я проги накатал...
Автор: Minister
Дата сообщения: 19.10.2001 13:45

Цитата:
Это ж я не тебе... Тебе я проги накатал...

Ой, точно. Не заметил кому написал.
А за проги спасибо!!!
Автор: vladxfree
Дата сообщения: 19.10.2001 16:41
так суда можно и еще писать ?
Автор: Minister
Дата сообщения: 19.10.2001 18:44

Цитата:
так суда можно и еще писать ?

Чего писать?
Автор: Daredevil
Дата сообщения: 19.10.2001 18:51
Не программер. И чего мне в ВУЗе преподавали по паскалю, я уже не помню...
Автор: Wowik
Дата сообщения: 20.10.2001 05:19
vladxfree
Minister
Daredevil
Не флеймить!
Автор: Excell
Дата сообщения: 02.04.2003 18:09
Daredevil
L0Ve
написал програмку для решения квадратного уравнения (+решение линейного, если a=0 + неполного квадратного...) на visual c все как положено с обЪектами, а оказалось, что препод просил на pas и без обЪектов - элемнтарно, но pascal забыл уже во многом, написал кое-что проблемы с отладкой.....

помигите plZZ, срочно нужно...
Автор: FuzzyLogic
Дата сообщения: 02.04.2003 18:41
Post the source here, or PM me.
Автор: red_armored
Дата сообщения: 02.04.2003 22:46

Цитата:
Excel


uses crt;
var
a,b,c,d:real;
x:array[1..2] of real;



begin
clrscr;
writeln('Уравнение типа ax^2+bx+c,введите a,b,c');
readln(a);
readln(b);
readln(c);

d:=sqr(b)-4*a*c;

if d>0 then
begin
x[1]:=(-b+sqrt(d))/2;
x[2]:=(-b-sqrt(d))/2;
writeln('Уравнение имеет 2 корня : ',x[1],' и ',x[2]);
end
else if d=0 then
begin
writeln('Уравнение имеет 1 корень : ',-b/(2*a));
end
else
begin
writeln('Корней нет');
halt(1);
end;

end.

Одну штуку только не помню - как из реала сделать нормальный вид.
Автор: FuzzyLogic
Дата сообщения: 03.04.2003 08:15

Цитата:

Одну штуку только не помню - как из реала сделать нормальный вид.

В смысле writeln(number:15:5)? (типа printf('%15.5f',...))
Автор: Excell
Дата сообщения: 03.04.2003 11:15
red_armored
FuzzyLogic

Цитата:
Одну штуку только не помню - как из реала сделать нормальный вид

обычно пишут
Код: :6:3
Автор: red_armored
Дата сообщения: 03.04.2003 20:33
uses crt;

type
letters = set of char;

const
nN:letters = ['n','N'];

var
a1,b1,c1,d:real;
choise:char;
x:array[1..2] of real;
k:byte;

procedure kvadrat(a,b,c:real);
begin


clrscr;

d:=sqr(b)-4*a*c;

if d>=0 then
begin
x[1]:=(-b+sqrt(d))/2;
x[2]:=(-b-sqrt(d))/2;
writeln('Корни уравнения : ',x[1],',',x[2]);
end

else
writeln('Корней нет');
end;

begin
clrscr;
repeat
k:=0;

writeln('Уравнение типа ax^2+bx+c,введите a,b,c');
readln(a1);
readln(b1);
readln(c1);
if a1=0 then
begin
writeln('Уравнение линейное,решить?(y/n)');
readln(choise);
if not(choise in nN) then
begin
writeln('Корень -',-b1/c1);
readln;
end
else if (b1=0) and (c1=0) then
begin
writeln('Уравнение имеет один корень - 0');
end
else
kvadrat(a1,b1,c1);

writeln('Повторить?(y/n)');
readln(choise);
if choise in nN then inc(k);

until k=1;

end.

==============================================

Спасибо можешь кидать книгами по C++(если есть) на remy@pochtamt.ru
Народ кидайте задачки(на паскале и C++), практика нужна.
Автор: Excell
Дата сообщения: 09.04.2003 14:30

Цитата:
k:=0;

убрал
все пошло, спасибки, еще в конец readkey;
Автор: CoddeX
Дата сообщения: 27.04.2003 20:08
red_armored

Цитата:
Народ кидайте задачки(на паскале и C++), практика нужна.

В смысле задачки без решения тренироваться решать? или готовые решения..


Вот у меня есть маленькая проблемка .. нужен алгоритм игры Ханойские башни, не знаю как сделать игру... очень нада! Могет кто нить поможет, у кого есть???
Автор: Sleepwalker
Дата сообщения: 28.04.2003 01:39
CoddeX
есть алгоритм на Прологе
там три строчки всего

кстати.. есть рекурсивный алгоритм и на других языках.. где-то видел давно, когда этим интересовался... поищи книги по олимпиадной информатике...
Автор: CoddeX
Дата сообщения: 28.04.2003 14:43
Sleepwalker

Цитата:
есть алгоритм на Прологе

а что такое есть Пролог? (то что это язык программирования, я знаю...)
и что есть рекруссивный метод? рекрусивный метод для решения задачки по моему, а мне нужна сама игра...
Автор: red2003
Дата сообщения: 28.04.2003 16:03
Привет народ!!! i`am need help!!! Блин задачки нада сделать а я впаскале не силён...а уже нада скоро сдать их.....помогите плзззз!
Задача №1
Определить значение функции y. Необходимо использовать не менее одной подпрограммы-функции и подпрограммы-процедуры.
Исходные данные:значения элементов массивов А[1...k] (или А[1...k,1...k]) и переменные В,С в зависимости от условия задачи.
Пример:
В формулах расчёта у использованы следующие обозначения:
М12- номер (индекс) строки максимального элемента матрицы.

Задача №2
Найти корни функций на заданном иниервале соответствующим методом.
Задачу решить методом дихотомии(деления отрезка пополам).
Пример: Cos(x-Exp(x)) [0,2]

Задача№3
Задан массив чисел X[1...15].Определить значение переменной у. Исходные данные и результат напечатать с пояснительным текстом.
Пример:
В формулах расчёта у использованы следующие обозначения:
A1-сумма элементов массива Х
А4-сумма косинусов положительного массива Х
М1-колличество элементов массива Х, значения которых меньше А1

Задача №4
Задание№1
Записать программу, выполняющую следующие операции:
-ввод с кдавиатуры последовательности (колличество элементов m произвольно , но максимальный размер последоательности N фиксирован, M<=N);
-сортировка роследовательности ро возрастанию (убыванию) указанным методом;
-поиск заданного элемента в последовательности.

Вид последовательности:

-варианты 1,3,5,7,9-числовая;
-варианты2,4,6,8,10-нечисловая

Сортировку данных реализовать:
-варианты 1,5,9 - методом "пузырька";
-варианты2,6,10-методом включения (простых вставок);
-варианты 3,4,7,8-методом простого выбора;
Задание№2
Написать меню для демонстрации работы пунктов задания 1.



Буду очень благодарен.........если чё пишите на redline@students.ru
Автор: CoddeX
Дата сообщения: 28.04.2003 16:09
red2003

Мы тута про игры... а ты Иди лучше пей пиво

Люди помогите мне написать игрушкеу на ТурбоПаскале!
Автор: red2003
Дата сообщения: 28.04.2003 16:12
CoddeX
Блин...я уже пива обпился....так что ща время за учёбу браться!
Автор: autumn_orion
Дата сообщения: 28.04.2003 16:53
red2003
Судя по формуле у тебя дан все-таки двумерный массив...
Какую смысловую нагрузку несут переменные B и C?

Кстати, суммирование в формуле по j?
Автор: CoddeX
Дата сообщения: 28.04.2003 16:59
autumn_orion
Он условие не то написал.. ща перепишет как надо....
Автор: mymuss
Дата сообщения: 28.04.2003 18:58
Про ханойский башни.

Мне известно 2 алгоритма:
А1) Простой рекурсивный
А2) Хитрый нерекурсивный

Итак пусть у нас есть n дисков и надо их переместить с 1-го столбика на 2-й, используя 3-й.
А1) Используем метод "разделяй и влавствуй".
Рекурсивная процедура решения выглядит приблизительно так:

Код:
Шаг 1. Применяя эту процедуру перемещаем n-1 дисков с 1-го столбика на 3-й
Шаг 2. Перемещаем n-й диск на 2-й столбик
Шаг 3. Применяя эту процедуру перемещаем n-1 дисков с 3-го столбика на 2-й
Автор: CoddeX
Дата сообщения: 29.04.2003 07:28
mymuss

Смотри здесь http://forum.ru-board.com/topic.cgi?forum=33&topic=1378
Автор: autumn_orion
Дата сообщения: 29.04.2003 13:54
red2003

program test1;

const k=3;

type matrix=array[1..k,1..k] of double;


procedure init(var a:matrix);
begin
a[1,1]:=3.12;
a[1,2]:=2.14;
a[1,3]:=6.18;
a[2,1]:=8.99;
a[2,2]:=9.00;
a[2,3]:=14.77;
a[3,1]:=15.6;
a[3,2]:=9.8;
a[3,3]:=100.0;
end;

function max_str_num(const a:matrix):integer;
var i,j:integer;
maxelem:real;
begin
maxelem:=a[1,1];
max_str_num:=1;
for i:=1 to k do
for j:=1 to k do
if (a[i,j]>maxelem) then
begin
maxelem:=a[i,j];
max_str_num:=i;
end;
end;

function Y(const a:matrix; const strnum:integer):real;
var i:integer;
tmpY:real;
begin
tmpY:=0;
for i:=1 to k do
tmpY:=tmpY+a[strnum,i]+a[i,strnum];
Y:=tmpY*strnum/strnum;
end;

{main}
var matr:matrix;
i:integer;
begin
init(matr);
i:=max_str_num(matr);
writeln ('result=',Y(matr,i));
end.

вот тебе первая задачка.
Только я не понял глубокий смысл умножения на м21 и деления на него же в формуле
Ксати, массив целочисленный или нет?
Автор: red2003
Дата сообщения: 29.04.2003 14:13
autumn_orion
Сенкссс...огромный..тебе...помог......



Цитата:
Только я не понял глубокий смысл умножения на м21 и деления на него же в формуле
Ксати, массив целочисленный или нет?


Я и сам не понял этого смысла.. Массив вроде целочисленный!

Страницы: 12

Предыдущая тема: InstallShield Professional 6.1


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.