Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для BIOINFprf
1 / 1 / 1
Регистрация: 30.10.2016
Сообщений: 35

Операции с рациональными дробями

13.11.2016, 18:40. Показов 825. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!

Пытаюсь сделать задачу. Не понимаю как работать с record.
Я так понимаю, что мне нужно при помощи record вводить данные. Хорошо, предположим, что у меня выходит что-то такое:
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
type str=record
   pd: string[3]; 
   oper: string[1];
   dd: string[3]; 
end;
var kalkulacka: array [1..100] of str;
   I, n: integer;
begin
 
   read(n);
   for I:=1 to n do
   with kalkulacka[I] do
   begin
      readln(pd);
    
      readln(oper);
      
      readln(dd);
   writeln ;


Но я не понимаю, каким образом мне из введенных данных получить числа, с которыми я могу уже написать функции.
Спасибо за ответ.
Миниатюры
Операции с рациональными дробями  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2016, 18:40
Ответы с готовыми решениями:

Операции с десятичными дробями
Программу я кое-как написал часа за 3. Но, очевидно, совсем не на ту тему, которая подразумевается в задаче. Хотелось бы увидеть более...

С дробями
S=(1!/2)+(2!/3+4)+(3!/4+5+6)+(4!/5+6+7)+(5!/6+7+8+10+13)+(6!/7+8+9+11+14+19)+...... С клавиатуры вводим n=(количество) надеюсь на...

фокусы с дробями
Петя очень хочет научиться жонглировать и показывать фокусы. Недавно его друг показал ему один фокус - попросил Петю загадать ему некоторую...

4
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
13.11.2016, 19:07
Pascal
1
2
3
4
type
  TRational = record
    n, d: Longint; { числитель/знаменатель }
  end;
Затем написать процедуры чтения дробей, вспомнить про НОД (наибольший общий делитель) и НОК (наименьшее общее кратное), про сокращение дробей и правила выполнения арифметических операций с дробями.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
13.11.2016, 19:16
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
type prim=record
              a,b,c,d:integer;
              op:char;
             end;
var s:string;
     k:integer;
.................................
readln(s);//читаем строку
val(copy(s,1,pos('/',s)-1),a,k);//первое число до символа /
delete(s,1,pos('/'));//удаляем его вместе с /
val(copy(s,1,pos(' ',s)-1),b,k);//второе число до пробела(если он там есть)
delete(s,1,pos(' '));//удаляем вместе с пробелом
op:=s[1];//оператор
delete(s,1,2);//удаляем его и пробел за ним
val(copy(s,1,pos('/',s)-1),c,k);//третье число
delete(s,1,pos('/'));
val(s,d,k);//четвертое число
Добавлено через 6 минут
Если Паскаль АВС, то вместо val можно strtoint.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
13.11.2016, 19:26
Чтение могло быть таким:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure rRead(var a: TRational);
var c: Char;
begin
  with a do begin
    n:=0; d:=1;
    repeat Read(c) until c<=' ';
    while c in ['0'..'9'] do begin
      n:=n*10+Ord('c')-Ord('0');
      if EoLn then begin c:=' '; Break end else Read(c);
    end;
    if c='/' then begin
      d:=0; c:='0';
      while c in ['0'..'9'] do begin
        d:=d*10+Ord(c)-Ord('0');
        if EoLn then Break else Read(c);
      end;
    end;
  end;
end;
При таком чтении нельзя писать что-либо значащее вплотную после знаменателя -- потеряется.
0
 Аватар для BIOINFprf
1 / 1 / 1
Регистрация: 30.10.2016
Сообщений: 35
14.11.2016, 12:28  [ТС]
Спасибо.
Но я что-то всё ещё туплю маленько.

P.S. подскажите, пожалуйста, как во фрипаскале настроить, чтобы IDE показывало как программа пробегает пошагово?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.11.2016, 12:28
Помогаю со студенческими работами здесь

Массив с дробями
Создать с помощью генератора случайных чисел массив из дробей в диапазоне (-6..6). Ввести с клавиатуры целое число S. Создать новый массив,...

Работа с дробями
Задание: Напишiть програму для обробки простих дробів (кожен дріб задається двома натуральними числами – чисельником і знаменником): ...

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

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

Написание модуля и основной программы для работы с дробями
помогите, пожалуйста! напишите нестандартный модуль + основную программу для работы с дробями (библиотеку подпрограмм выполнения операций...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru