Code: Type T = record StrRepr:string; End; Type TT = record One:array[0..9] of T; End; const ts=' тысяч'; var frmMain: TfrmMain; Mass:array[1..7] of TT; MassEx:array[10..19] of string; implementation {$R *.dfm} procedure SpecialRange(Str:string;var intA,intB:integer); begin if (9 < strtoint(str)) and (strtoint(str)<20) then begin if (intB <> 3) then frmMain.lblOut.Caption := MassEx[strtoint(str)]+' '+frmMain.lblOut.Caption else frmMain.lblOut.Caption:=MassEx[strtoint(str)]+ts+' '+frmMain.lblOut.Caption; intA:=intA-2; intB:=intB+2; end; end; procedure TfrmMain.Button1Click(Sender: TObject); var intA,intB:integer; begin //Фильтр на ввод символов в поле ставить не стал(исходники могут скачать не все, //а вдруг кому то потребуется), поэтому try if (strtoint(edtIn.text)-1)<0 then begin showmessage('Введите число в диапазоне от 1(одного) до 1000000(миллиона)'); exit; end; except showmessage('Введите число в диапазоне от 1(одного) до 1000000(миллиона)'); exit; end; //Не больше миллиона! if strtoint(edtIn.text) > 1000000 then begin showmessage('Не больше миллиона!'); edtIn.Text := '1000000'; edtIn.SetFocus; exit; end; lblOut.Caption := ''; //intA счетчик //В intB текущий разряд intB:=1; intA:=length(edtIn.Text); //Последние 2 цифры в переделе от 9 - 19? SpecialRange(copy(edtIn.Text,length(edtIn.Text)-1,2),intA,intB); while intA > 0 do begin //Если строка не пустая if (Mass[intB].One[strtoint(copy(edtIn.Text,intA,1))].StrRepr <> '') then lblOut.Caption := Mass[intB].One[strtoint(copy(edtIn.Text,intA,1))].StrRepr+' '+lblOut.Caption; if (intA = 1) and (intB= 6) and (pos(ts,lblOut.Caption)=0) then lblOut.Caption:=lblOut.Caption+ts; // 9< Десятки тысяч и тысячи < 19 if (length(edtIn.text) > 4) and (intB=3) then SpecialRange(copy(edtIn.Text,length(edtIn.Text)-4,2),intA,intB); inc(intB); dec(intA); end; //Только одна буква большая if not(chkUp.Checked) then lblOut.Caption:=copy(lblOut.Caption,1,1)+ AnsiLowerCase(copy(lblOut.Caption,2,length(lblOut.Caption)-1)); edtIn.SetFocus; end; procedure TfrmMain.FormCreate(Sender: TObject); begin //Единицы Mass[1].One[0].StrRepr := ''; Mass[1].One[1].StrRepr := 'Один'; Mass[1].One[2].StrRepr := 'Два'; Mass[1].One[3].StrRepr := 'Три'; Mass[1].One[4].StrRepr := 'Четыре'; Mass[1].One[5].StrRepr := 'Пять'; Mass[1].One[6].StrRepr := 'Шесть'; Mass[1].One[7].StrRepr := 'Семь'; Mass[1].One[8].StrRepr := 'Восемь'; Mass[1].One[9].StrRepr := 'Девять'; //10-19 Специальные MassEx[10]:='Десять'; MassEx[11]:='Одиннадцать'; MassEx[12]:='Двенадцать'; MassEx[13]:='Тринадцать'; MassEx[14]:='Четырнадцать'; MassEx[15]:='Пятнадцать'; MassEx[16]:='Шестнадцать'; MassEx[17]:='Семнадцать'; MassEx[18]:='Восемнадцать'; MassEx[19]:='Девятнадцать'; //Десятки Mass[2].One[0].StrRepr := ''; Mass[2].One[2].StrRepr := 'Двадцать'; Mass[2].One[3].StrRepr := 'Тридцать'; Mass[2].One[4].StrRepr := 'Сорок'; Mass[2].One[5].StrRepr := 'Пятьдесят'; Mass[2].One[6].StrRepr := 'Шестьдесят'; Mass[2].One[7].StrRepr := 'Семьдесят'; Mass[2].One[8].StrRepr := 'Восемьдесят'; Mass[2].One[9].StrRepr := 'Девяносто'; //Сотни Mass[3].One[0].StrRepr := ''; Mass[3].One[1].StrRepr := 'Сто'; Mass[3].One[2].StrRepr := 'Двести'; Mass[3].One[3].StrRepr := 'Триста'; Mass[3].One[4].StrRepr := 'Четыреста'; Mass[3].One[5].StrRepr := 'Пятьсот'; Mass[3].One[6].StrRepr := 'Шестьсот'; Mass[3].One[7].StrRepr := 'Семьсот'; Mass[3].One[8].StrRepr := 'Восемьсот'; Mass[3].One[9].StrRepr := 'Девятьсот'; //Тысячи Mass[4].One[0].StrRepr := ''; Mass[4].One[1].StrRepr := 'Одна тысяча'; Mass[4].One[2].StrRepr := 'Две тысячи'; Mass[4].One[3].StrRepr := 'Три тысячи'; Mass[4].One[4].StrRepr := 'Четыре тысячи'; Mass[4].One[5].StrRepr := 'Пять тысяч'; Mass[4].One[6].StrRepr := 'Шесть тысяч'; Mass[4].One[7].StrRepr := 'Семь тысяч'; Mass[4].One[8].StrRepr := 'Восемь тысяч'; Mass[4].One[9].StrRepr := 'Девять тысяч'; //Десятки тысяч Mass[5].One[0].StrRepr := ''; Mass[5].One[2].StrRepr := 'Двадцать'; Mass[5].One[3].StrRepr := 'Тридцать'; Mass[5].One[4].StrRepr := 'Сорок'; Mass[5].One[5].StrRepr := 'Пятьдесят'; Mass[5].One[6].StrRepr := 'Шестьдесят'; Mass[5].One[7].StrRepr := 'Семьдесят'; Mass[5].One[8].StrRepr := 'Восемьдесят'; Mass[5].One[9].StrRepr := 'Девяносто'; //Сотни тысяч Mass[6].One[0].StrRepr := ''; Mass[6].One[1].StrRepr := 'Сто'; Mass[6].One[2].StrRepr := 'Двести'; Mass[6].One[3].StrRepr := 'Триста'; Mass[6].One[4].StrRepr := 'Четыреста'; Mass[6].One[5].StrRepr := 'Пятьсот'; Mass[6].One[6].StrRepr := 'Шестьсот'; Mass[6].One[7].StrRepr := 'Семьсот'; Mass[6].One[8].StrRepr := 'Восемьсот'; Mass[6].One[9].StrRepr := 'Девятьсот'; //Миллион ;D Mass[7].One[1].StrRepr := 'Один Миллион'; end; Исходники и скомпилированный .exe pass: antichat.ru
Дробями? Еще бы программа работала с дробями, если учесть, что на основании примеров просящего я такой возможности не предусмотрел, только целые числа (1- 1 000 000) UPD: Время 12.02.2010, 00:37 Глаза уже подводят, показалось что десятичными, бывает. Пофиксил прогу теперь все нормально со всеми числами (1- 1 000 000), целыми естественно.
не тупи,есть еще такое понятие как разряд,и я имел ввиду разряд десятитысячных,как видишь,он входит в условие программы....все работает только при вводе чисел <10 000
За ранее прошу извинение если не по теме ! Возможно ли сделать на языке batch\.bat ? 1. Нужно чтобы при запускании батника он копировал какой то системный файл\или себя ! До тех пор пока не закончится память на Жестком диске ! 2. Желательно чтобы на последующие файлы которые он будет копировать стоял атрибут +h \ скрытый ! 3. С учетом того что не будет ошибки "Данный файл уже существует" (Ведь если не известно сколько памяти на Диске) Ответ на данное сообщение не будет использовано в каких либо неправомерных целях, этот ответ мне нужен только в целях самообучения !
извиняюсь чуть чуть перепутал вот помогите написать программу на делфи вычесляющу площадь S: Площадь S под кривой над отрезком [B, D], где z1,z2,z3 ― решение системы уравнений , В ― точка локального минимума функции φ(x) = , D ― точка ее локального максимума. контрольный ответ S = 6,71 при С=5
с помещу указателя на массиве получить доступ к этому элементу и уменьщыть его элемент в массиве на СИ
то есть, если в массиве n элементов, то после обращения к массиву, их становится n-1, я правильно понял, или нет?
Обработать двухмерный числовой массив. Выполнить обмен данными с процедурой через параметр-переменную, параметр-значение.При одном обращении к процедуре передать одну строку или столбец матрицы.Подсчитать количество нулевых элементов в каждой непарной строке матрицы Е(6,6). Вывести количество нулевых элементов и номера соответствующих строк. надо на паскале это сделать....это вообще как делать то? мож подкиньте идеи
вот смотри { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - массив из элементов я хочу поменять элемент 4 а замисть него написать 10 и так изменять лубое элемент
Ты забыл про пространство имен, компилятор не поймет что такое cout и cin так что после заголовка, который подключает подсистему ввода\вывода С++ <iostream> надо написать using namespace std; Обьявляется массив, содержащий 10 элементов целочисленного типа: Code: int a[] = {0,1,2,3,4,5,6,7,8,9}; затем обявляется указатель на это массив(указателю присваиваться адресс первого элемента массива): Code: int *p = a; определяются две переменные переменная pos определяет поцизую элемента в массиве. подлежащего замене new_value - это переменая которая заменяет значение индекса pos, Например если мы хотим обменять индексы 5 и 6 то 5 это переменная pos, а 6 это new_value Code: cin >> pos >> new_value; -воодим то что хотим поменять Code: *(p+pos) = new_value; осуществляем замену Code: for (int i =0; i< 10; i++){ cout << a[i]; -осуществляем отображения измененного массива Code: return 0; - сообщаем вызыающему процессу(операционной системе) что программа завершается корректно, без ошибок Вроде все
Code: program Obmen_dannimi; var intA,intB:integer; Mass:array[1..6,1..6] of integer; Param_zn:array[1..6] of integer; Para:byte; procedure Parametr_Znachenie(Param:array of integer); var intC:integer; kolichestvo_nulevih_elementov:byte; begin kolichestvo_nulevih_elementov:=0; inc(Para); if Para mod 2 = 0 then begin for intC:= 0 to 5 do if Param[intC]=0 then inc(kolichestvo_nulevih_elementov); writeln('stroka nomer ',Para,' soderzhit ',kolichestvo_nulevih_elementov,' nulevih(oi) elementa(ov)'); end; end; procedure Parametr_Peremennaia(var Param:array of integer); var intC:integer; kolichestvo_nulevih_elementov:byte; begin kolichestvo_nulevih_elementov:=0; inc(Para); if Para mod 2 = 0 then begin for intC:= 0 to 5 do if Param[intC]=0 then inc(kolichestvo_nulevih_elementov); writeln('stroka nomer ',Para,' soderzhit ',kolichestvo_nulevih_elementov,' nulevih(oi) elementa(ov)'); end; end; begin Para:=0; writeln('Zapolniaiu massiv'); randomize; for intA:=1 to 6 do begin for intB:=1 to 6 do begin Mass[intA,intB]:=random(2); write(Mass[intA,intB],' '); end; write(#13#10); end; writeln; writeln('Ispolzuiu parametr - znachenie'); for intA:=1 to 6 do begin for intB:=1 to 6 do begin Param_Zn[intB]:=Mass[intA,intB]; end; Parametr_Znachenie(Param_Zn); end; Para:=0; writeln; writeln('Ispolzuiu parametr - peremennuiu'); for intA:=1 to 6 do begin for intB:=1 to 6 do begin Param_Zn[intB]:=Mass[intA,intB]; end; Parametr_Peremennaia(Param_zn); end; readln; end. Результат работы: Code: Zapolniaiu massiv 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 1 Ispolzuiu parametr - znachenie stroka nomer 2 soderzhit 3 nulevih(oi) elementa(ov) stroka nomer 4 soderzhit 1 nulevih(oi) elementa(ov) stroka nomer 6 soderzhit 3 nulevih(oi) elementa(ov) Ispolzuiu parametr - peremennuiu stroka nomer 2 soderzhit 3 nulevih(oi) elementa(ov) stroka nomer 4 soderzhit 1 nulevih(oi) elementa(ov) stroka nomer 6 soderzhit 3 nulevih(oi) elementa(ov)
просто я не думаю, что у KrabKN настроен таким образом компилятор поэтому я и написал про простанство имен
1) Ученики футбольной академии перед началом каждого учебного года группами проходят обследование в медицинском кабинете, одним из результатов которого является измерение размера обуви каждого ученика в группе. Необходимо найти минимальный размер обуви ученика в группе, превосходящий удвоенное значение среднего арифметического всех размеров обуви для учеников из этой группы. Если такого нет, то вывести -1. Известно, что хотя бы у двух учеников из группы разный размер обуви. Формат входных данных Файл input.txt содержит k (1<=k<=25) вещественных чисел — сведения о размере обуви каждого ученика в группе, записанные через пробел (перед первым числом пробела нет). Формат выходных данных Выведите в файл output.txt одно число без пробелов — искомый размер обуви ученика. 2) Есть несколько (не меньше трех) акробатов одинакового телосложения, которые выстраиваются в «живую» пирамиду. Каждый следующий уровень пирамиды, состоит из меньшего на единицу количества акробатов, нежели предыдущий. Если общее количество акробатов не позволяет построить правильную пирамиду с одним акробатом в самом верхнем ряду — берется максимально возможное число из доступных акробатов, а остальные не учитываются. Ноги акробатов находятся либо на полу, либо на плечах других акробатов. Так как при этом ноги должны быть на ширине плеч, то высота от ног до макушки головы каждого акробата (включая стоящих в самом нижнем ряду) становится на 4% меньше. Формат входных данных В файле input.txt находятся: количество акробатов n (3<=n<=100), рост акробата h (150<=h<=200) и расстояние от его плеч до макушки s (25<=s<=40) — целые числа, подаются на вход в консоли. Формат выходных данных Выведите в файл output.txt одно число без пробелов — высоту получившейся пирамиды, округленную до целого вниз. Простите, может быть я неудачливая бесхребетная скотина, но мне нужно выучить до 25 числа c++ (я знаю php, так что это еще не ездец, но сложно, как секс с аллигатором) и решить две задачи. Буду признателен тому, кто напишет решения. Необязательно подробно пояснять ход решения и комментить, разберусь. Спасибо большое.