|
Бухгалтерский калькулятор
|
|
| ARTEM713 | Дата: Суббота, 01.12.2007, 23:38 | Сообщение # 1 |
|
Новичок
Группа: Пользователи
Сообщений: 9
Статус: Offline
| Пользователь вводит число от 0 до 999999, на экране возникает это же число, но записанное приписью. Требования к программе: 1)Предусмотреть проверку корректности ввода исходных данных 2)Ввод числа можно осуществлять до тех пор, пока пользователь не нажал клавишу''Д'' или ''д'' 3)Ввод и вывод данных должен содержать сопровождение 4)Обработку данных производить с помощью процедур и функций пожалуйста помогите очень надо!!!!!!!
|
| |
|
|
| Pavel | Дата: Воскресенье, 02.12.2007, 12:17 | Сообщение # 2 |
 Приближенный
Группа: Модераторы
Сообщений: 210
Статус: Offline
| Quote (ARTEM713) 3)Ввод и вывод данных должен содержать сопровождение Что есть сопровождение?
|
| |
|
|
| Pavel | Дата: Воскресенье, 02.12.2007, 14:17 | Сообщение # 3 |
 Приближенный
Группа: Модераторы
Сообщений: 210
Статус: Offline
| Вот задача: Остается перевести из транслита. Если надо. Code program Buhg_calc; uses crt; const Hd: array[1..9] of string = ('sto' , 'dvesti' , 'trista', 'chetiresta', 'pyatsot' , 'shestsot', 'semsot', 'vosemsot', 'devyatsot');
Dc: array[1..10] of string = ('odin' , 'dva', 'tri' , 'chetire', 'pyat', 'shest', 'sem', 'vosem', 'devyat' , 'desyat');
th: array[1..10] of string = ('odna' , 'dve', 'tri' , 'chetire', 'pyat', 'shest', 'sem', 'vosem', 'devyat' , 'desyat'); var c: longint; res: string; tis: boolean; rkey: char;
Function Chislo(c: word; tis: boolean): string; var r, sub: string; cdc,n: byte; flag: boolean; begin flag := false; r := ''; if c = 0 then begin chislo := ''; exit; end;
if ((c div 100) > 0) then r := r + hd[c div 100] + ' '; cdc := c mod 100;
if (cdc <= 10) then begin if tis then r := r + th[cdc] + ' ' else r := r + dc[cdc] + ' '; end;
if (cdc > 10) and (cdc < 20) then begin n := cdc mod 10; sub := dc[n]; if (sub[length(sub)] = 'e') then delete(sub, length(sub), 1); if (sub[length(sub)] = 'a') then sub[length(sub)] := 'e'; r := r + sub + 'nadcat '; end;
if cdc >= 20 then begin if cdc div 10 <= 3 then begin r := r + dc[cdc div 10] + 'dcat '; flag := true; end; if cdc div 10 = 4 then begin r := r + 'sorok '; flag := true; end; if cdc div 10 = 9 then begin r := r + 'devyanosto '; flag := true; end;
if flag = false then r := r + dc[cdc div 10] + 'desyat '; if tis then r := r + th[cdc mod 10] + ' ' else r := r + Dc[cdc mod 10] + ' '; end;
if tis then begin if r[length(r) - 1] = 'a' then r := r + 'tysyacha ' else if (r[length(r) - 1] = 'e') or (r[length(r) - 1] = 'i') then r := r + 'tysyachi ' else r := r + 'tysyach ';
end; Chislo := r; end;
begin clrscr; repeat res := '';
writeln(#10#13, 'Vvedite chislo'); {$I-} readln(c); {$I+} if c = 0 then writeln('Nolik'); while (IOResult <> 0) or (c < 0) or (c > 999999) do begin writeln('Vvedite pravilno chislo: '); {$I-} readln(c); {$I+} end;
tis := c div 1000 > 0; if c div 1000 > 0 then res := chislo(c div 1000, tis); res := res + chislo(c mod 1000, false);
writeln(res);
writeln('Press [d] to continue...'); rkey := readkey; until (rkey = 'd') or (rkey ='D'); end.
{A perevodom zanimaites' sami, ya lublu transliteration!!!}
|
| |
|
|
| ARTEM713 | Дата: Понедельник, 03.12.2007, 06:06 | Сообщение # 4 |
|
Новичок
Группа: Пользователи
Сообщений: 9
Статус: Offline
| мега СПС!!! Добавлено (02.12.2007, 16:27) --------------------------------------------- транслит, ты имеешь ввиду перевести надпись типа odin на русский ??? Добавлено (02.12.2007, 23:06) --------------------------------------------- транслит, ты имеешь ввиду перевести надпись типа odin на русский ???
|
| |
|
|
| Seqular | Дата: Понедельник, 03.12.2007, 09:24 | Сообщение # 5 |
 Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| ARTEM713, Да, все верно! Транслит - это оно самое "odin" = "один" =) Pahan, Молодец! Респектую
Поддерживаю также проект сообщество молодых сисадминов
|
| |
|
|
| Pavel | Дата: Понедельник, 03.12.2007, 12:20 | Сообщение # 6 |
 Приближенный
Группа: Модераторы
Сообщений: 210
Статус: Offline
| Транслит - это еще с эпохи старых телефонов. Сотовые операторы меняли буквы в словах на латинские, потому что некоторые телефоны русский не поддерживали. Вот и в Паскале так же. Artem пиши еще. Поможем.
|
| |
|
|
| ARTEM713 | Дата: Среда, 05.12.2007, 04:48 | Сообщение # 7 |
|
Новичок
Группа: Пользователи
Сообщений: 9
Статус: Offline
| оки Добавлено (04.12.2007, 21:37) --------------------------------------------- не чегот не работает Добавлено (04.12.2007, 21:48) --------------------------------------------- begin n := cdc mod 10; sub := dc[n]; if (sub[length(sub)] = 'e') then delete(sub, length(sub), 1); if (sub[length(sub)] = 'a') then sub[length(sub)] := 'e'; ^ вот тут пишет Error 89: ")" Expected r := r + sub + 'nadcat '; вот тут пишет Error 89 end;
Сообщение отредактировал ARTEM713 - Среда, 05.12.2007, 04:43 |
| |
|
|
| Pavel | Дата: Среда, 05.12.2007, 09:48 | Сообщение # 8 |
 Приближенный
Группа: Модераторы
Сообщений: 210
Статус: Offline
| ARTEM713, ты что вручную перепечатывал что-ли? Скопируй все и сохрани все. Я сам лично только что скопировал код и сохранил его. Все работает. Покрайней мере в среде Turbo Pascal 7.0. За другие среды мы не отвечаем.
|
| |
|
|
| Seqular | Дата: Среда, 05.12.2007, 14:20 | Сообщение # 9 |
 Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| ARTEM713, Подтверждаю. Программа работает. Никаких ошибок не возникает
Поддерживаю также проект сообщество молодых сисадминов
|
| |
|
|
| ARTEM713 | Дата: Пятница, 21.12.2007, 04:03 | Сообщение # 10 |
|
Новичок
Группа: Пользователи
Сообщений: 9
Статус: Offline
| а возможно ее проще сделать??напишите как
|
| |
|
|
| Seqular | Дата: Пятница, 21.12.2007, 06:55 | Сообщение # 11 |
 Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| Quote (ARTEM713) а возможно ее проще сделать?? Возможно Quote (ARTEM713) напишите как Убрать часть ненужного кода
Поддерживаю также проект сообщество молодых сисадминов
|
| |
|
|
| Pavel | Дата: Пятница, 21.12.2007, 09:06 | Сообщение # 12 |
 Приближенный
Группа: Модераторы
Сообщений: 210
Статус: Offline
| Эм... Какого такого не нужного? Собсна там ниче лишнего нет. Тока условия на склонения русских слов! Разве код в 2 кб это сложно?
|
| |
|
|