fess
Удален
|
KMA, у него в условии задачи написано "В одномерном массиве, состоящем из п целочисленных элементов, вычислить: " целочисленный массив! Какие тут могут быть дроби? Отсюда и решение второй части задачи, которую выложил valera24, несколько... хм.. ну, в общем, ты сам понимаешь. Ну а как задаются вещественные числа в массиве - я знаю.
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 20 мая 2006 8:50 | IP
|
|
Guest
Новичок
|
Вот что я надумал, гляньте так или нет, если нет то что? var menu:array[1….n]; {кол-во пунктов меню} punkt:integer; ch:char; mass:array[1….15] of book; knt:byte; buf,newt:book; ff:file of book; x,y,i:integer; И ещё процедура открытия нового счёта: Procedure newschet; begin clrscr; writeln(‘ открытие нового счёта’); writeln(‘’); writeln(‘номер сбер книжки’); writeln(‘фио клиента’); writeln(‘дом адрес’); writeln(‘дата’); writeln(‘внесеная сумма:’); writeln(‘подтверждение (y-да, n-нет):’) gotoxy(34,3); readln(newt,number); gotoxy(34,4); readln(newt,fio); gotoxy(34,5); readln(newt,adres); gotoxy(34,6); readln(newt,dates); gotoxy(34,7); readln(newt,summa); gotoxy(34,8); read(ch); end;
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 20 мая 2006 19:31 | IP
|
|
KMA
Долгожитель
|
У меня в разработке есть в принципе хорошее меню, оформленно функцией, если надо, могу выложить в виде модуля. По поводу задачи, запись menu:array[1….n]; бессмысленна, во первых, запись не корректна, во вторых, смысла в этом нет. Ну да ладно, на счет меню после разберемся. Итак сама задача выполена не верно. Во первых процедура сам синтаксис, пойми у тебя нет переменных fio number, adress... это имя полей, по твоей логике должно быть так: Procedure newschet (Var schet: book); Var ch: char; Begin clrScr; writeln(‘ открытие нового счёта’); writeln(‘’); repeat writeln(‘номер сбер книжки’); writeln(‘фио клиента’); writeln(‘дом адрес’); writeln(‘дата’); writeln(‘внесеная сумма:’); writeln(‘подтверждение (y-да, n-нет):’) with schet do begin gotoxy(34,3); readln(number); gotoxy(34,4); readln(fio); gotoxy(34,5); readln(adres); gotoxy(34,6); readln(dates); gotoxy(34,7); readln(summa); gotoxy(34,8); read(ch) end; until ch<>'y'; end; Вот такой вариант получше будет, иначе зачем нам писать процедуру, если мы будем тупо пользоваться одной глобальной переменной. Замечательно, видишь, все оказалось не так и сложно, давай дальше. И, лучше, зарегистрируйся, я хоть буду знать как к тебе обращаться.
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 20 мая 2006 22:00 | IP
|
|
KMA
Долгожитель
|
fess, прости погаречился, просто у меня немного негативное отношение к людям, которые помогают все решать, даже тупо сброшенные задачи. Ты прав, здесь абсолютно верное решение, никаких притензий.
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 20 мая 2006 22:03 | IP
|
|
Malice
Удален
|
KMA ясно, спасибо,только чё то всё ещё понимаю с трудом. Это имена полей записи book тогда почему не правильно? Если можешь выложи тот модуль с менюшкой. И ещё как сделать функцию остаток, я сделал процедуру но вышло очень много почти на страницу, а функция эта в каждой процедуре нужна.
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 21 мая 2006 12:09 | IP
|
|
KMA
Долгожитель
|
Значит так, вот модуль, в нем в довольно таки мало функций и процедур, да и те в разработке. Немного расскажу о нем. P border; чертит рамочку, не доработана... F x(x1, x2: byte; s: string):byte; понимаю, тупое название тупое, но ничего в голову другое не лезло. Возвращает центр между х1 и х2, для надписи s, если быть более точным, то определяет откуда слудет начать запись, чтобы надпись была по центру. F menu (n: byte): byte; Функция которая возвращает значение выбранного пункта меню из n пунктов, всего до десяти возможных пунктов. Предварительно, желательно, чтобы эти пункты были заполнены, заполняются они в массив p, состоящий из 10 элементов. Заполнение происходит в программе так: vMenu.p[1]:='Создать новый документ'; vMenu.p[2]:='Открыть документ'... Ну и так далее. Думаю разберетесь. Да чего я все рассказываю, запустите, и сами все посмотрите. Ах да, забыл скачать можно внешняя ссылка удалена Функцию позже напишу, сейчас немного занят, к вечеру будет. (Сообщение отредактировал KMA 21 мая 2006 15:32)
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 21 мая 2006 15:26 | IP
|
|
KMA
Долгожитель
|
Malice function ostatok (f: file of book): word; Var buf: book; {обменник} search: string[40]; {имя для поиска} Begin write ('Напишите имя, фамилию, отчество клиента ->'); readLn (search); reSet (f); {если ты предварительно уже открывал файл, то значит seek (f,0)} while (buf.fio<>search) or (not EoF (f)) do begin read (f, buf); if buf.fio=search then ostatok:=buf.mods end End; Не забудь в проге в конце закрыть файл, а функция нахождения остатка должны выглядеть примерно так, как показано выше.
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 21 мая 2006 17:51 | IP
|
|
Mas
Новичок
|
Прога вообще никак не идет!!! Без использования массивов, ф-ции и процедур записать произвольную матрицу в файл(integer),затем, открыть ее на чтение и посчитать след(произведение элементов главной диагонали).
|
Всего сообщений: 8 | Присоединился: май 2006 | Отправлено: 21 мая 2006 21:03 | IP
|
|
KMA
Долгожитель
|
Цитата: Mas написал 21 мая 2006 21:03 Прога вообще никак не идет!!!
Здорово, может все таки исходник привидешь? Вот и посмотрим где твои ошибочки
Цитата: Mas написал 21 мая 2006 21:03 Без использования массивов, ф-ции и процедур записать произвольную матрицу в файл(integer),затем, открыть ее на чтение и посчитать след(произведение элементов главной диагонали).
Пометочка, главная диагональ только у квадратной матрицы, так что слово произвольная здесь не уместно. Далее, а пользоваться стандартными процедурами и функциями можно? Чтобы хотя бы все в файл записать. Решается... Такие задачи решаются. Тут главное оценить размер файла, а так как он у нас типизированный, то значит поможет fileSize. Потом из полученного числа извлекаем корень, и получаем матрицу размером n, где n обязательно целое, иначе если оно дробное, значит матрица не квадратная, поэтому главной диагонали не имеет. Далее, все элементы будут встречаться начиная с первого через n+1, элементов, поэтому для этого юзаем seek (f, n+1), чтобы поставить указатель, помня, что начинается все с нулевого элемента, потом читаем оттуда переменную, перемножаем, и вуаля, все получается. Если конечно можно использовать стандартные процедуры и функции. Чего не понятно, пиши сюда, можно и в личку, там разберем... (Сообщение отредактировал KMA 21 мая 2006 21:34)
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 21 мая 2006 21:34 | IP
|
|
bart
Удален
|
вопщем я нуп если кому не лень помогите решить задачки) 1 даны основания трапеции a,b и высота h. Опредлить площадь и периметр трапейции 2 даны координаты точки(X,y) Указать, где расположена точка ( на какой оси в каком координатном угле) 3 Дано натуральное число N Вычислить S=(1/sin1)+1/(sin1+sin2)+...+1/(sin1+sin2+..+sin n) 4 Решить уравнение asin(в квадрате) x+ b*sinx+c=0 на отрезке [0, pi/2], используя вспомогательный алгоритм 5 задан массив, состоящий из N целых элементов. Определить, сколько процентов от всего количества элементов последовательности целых чисел состовляют нечетные элементы. 6)Найти сумму членов арифметической пргрессии,если извесны её первый член, знаменатель и число членов прогрессии. 7)Вычислить сумму факториалов всех чётных чисел от 2 до 10,используя вспомогательный алгоритм N! 8)Последовательно вводятся N целых чисел.Найти минимальное из положительных чисел. 9)Дана последовательность чисел, среди которых имеется один ноль.Вывести все числа до нуля включительно. Вотъ вроде всё)))))
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 22 мая 2006 17:05 | IP
|
|
|