Jump to content
СофтФорум - всё о компьютерах и не только

Заказы "Сделайте все за меня"


Recommended Posts

привет ещё раз!программа в graph должна быть,часики должны тикать,сторелки ходить,звенеть в 8.00,а потом идти дальше,сказали сделать так,чтобы в соответствии с реальным временем было,ума не приложу,как это делать

Link to comment
Share on other sites

«КОМАНДНЫЕ ФАЙЛФЫ DOS»

Написать командный файл с использованием списка фактических параметров для задания имен файлов, используемых в задании. В тексте им сопоставить формальные параметры %1 - %9.

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

Файлы, которые обрабатываются в программе должны быть предварительно созданы в текстовом редакторе (команда EDIT) и сохранены в текущем каталоге.

Вариант 8.

Создать подкаталог, скопировать туда два файла, рассортировать первый в порядке возрастания, второй – убывания. Слить их и поместить по имени третьего файла , отобразить на экране объединенный файл. Удалить подкаталог.

:)

HELP

Link to comment
Share on other sites

pinmix:

aTeos:

А задачку со знаками препинания я делал с помощью массива с указателем:

*znak{.,:?}

Точно, так даже лучше! Что-то я сразу не догадался :) :)

По поводу второй проги. Если ты еще сам не сделал, стучись в аську. Просто опять неохота лишний раз писать :)

Link to comment
Share on other sites

«КОМАНДНЫЕ ФАЙЛФЫ DOS»

Написать командный файл с использованием списка фактических параметров для задания имен файлов, используемых в задании. В тексте им сопоставить формальные параметры %1 - %9.

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

Файлы, которые обрабатываются в программе должны быть предварительно созданы в текстовом редакторе (команда EDIT) и сохранены в текущем каталоге.

Вариант 8.

Создать подкаталог, скопировать туда два файла, рассортировать первый в порядке возрастания, второй – убывания. Слить их и поместить по имени третьего файла , отобразить на экране объединенный файл. Удалить подкаталог.

:no:

HELP

может сылочку подкинете по этой теме

Link to comment
Share on other sites

Тролль:

Завалила преподша прогу, сказала делать по-другому.

Вот что я настрочил, но не могу доделать.

var

I, J, Imin, Imax, M, N: integer;

Min, Max: real;

A:array[1..100,1..100] of real;

B: array[1..100] of real;

begin

writeln ('введите число размерности матрицы',M,N);

readln M,N;

for I:=1 to M do

begin

writeln ('A[', I, ',', J, ']=');

for J:=1 to N do

read (A[i,J]);

end;

writeln ('матрица:');

........................

тут она от меня требует вывода матрицы в виде таблицы

.......................

Min:=A[1,1];

Imin:=1;

Max:=A[1,1];

for I:=1 to M do

for J:=1 to N do

begin

if A[i,J]>Max then begin

Max:=A[i,J];

Imax:=I;

end;

if Max,Min then begin

Min:=A[i,J];

Imin:=I;

end;

B:=Max; {вот эту строку я вообще не понял}

end;

Writeln ('Min=', Min, ' ', Imin);

writeln ('Max в строке:');

for I:=1 to M do writeln(B:6:3);

.................................

вот мы по ходу нашли масимум, осталось в этих максимумах найти минимумы (т.е. мы найдем минимаксный элемент), а потом найти номер строки в которой он расположен. Мозги работать отказались

Link to comment
Share on other sites

Сим-Сим88

for <счетчик строк> i:= 0 to N do begin {строки}

for <счетчик столбцов> j:= 0 to M do begin {столбцы}

write(A[N,M]);

end; {столбцы}

writeln;

end; {строки}

Оно?

Link to comment
Share on other sites

Сим-Сим88:

Интересно, что ей не понравилось? Все ведь работало. Правда, сейчас заметил в приведенной мной раньше программе ошибку в подсказке

WriteLn('Введите размерности матрицы (через пробел)',M,N);

Должно было быть так:

WriteLn('Введите размерности матрицы (через пробел)');

Из-за этого в приглашении к вводу размерностей выводились после приглашения значения M и N, бывшие в это время случайными числами. Но на работу программы это не влияло. Хотя, конечно, могло при проверке работы сбить с толку.

Итак, значит, есть желание вывести матрицу после ввода снова на экран. Перед этим мы ее, правда, вводили, и все уже было на экране, но желание юзера - закон.

Матрица на экран выводится так (потом включу этот кусок в текст программы, а пока напишу его отдельно):

for I:=1 to M do

begin

for J:=1 to N do Write(A[i,J]);

WriteLn;

end;

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

Поехали дальше.

Судя по появлению массива B, твоя преподавательница хочет сначала записать все максимумы по строкам в отдельном массиве B, а потом уже искать в нем минимум. Я так полагаю, до нее не дошло, что эти два этапа можно совместить. То есть вместо матрешки поезд. Имхо, лишний массив и лишний цикл. Но как просят, так и сделаем.

{объявление переменных и ввод матрицы просто переписываю}

var

I,J,M,N,K: Integer;

Min,Max: Real;

A: array [1..100,1..100] of Real;

B: array [1..100] of Real;

begin

WriteLn('Введите размерности матрицы (число строк и, через пробел, число столбцов): ');

ReadLn(M,N);

for I:=1 to M do

begin

WriteLn('Введите элементы',I,'-й строки, разделяя их пробелами');

for J:=1 to N do Read(A[i,J]);

end;

{выведем введенную матрицу на экран}

for I:=1 to M do

begin

for J:=1 to N do Write(A[i,J]);

WriteLn;

end;

{поместим в массив B максимумы строк}

for I:=1 to M do

begin

B:=A[i,1];

for J:=1 to N do if A[i,J]>B then B:=A[i,J];

end;

{поехали искать минимум в массиве B}

Min:=B[1];

for I:=1 to M do if Min>=B then begin Min:=B; K:=I end;

{знак >= дописал только просмотрев еще раз программу в уже выложенном посте, а сначала заимствовал, подправив только переменные, строку из старой программы со знаком > , но не заметил, что в новой программе при этом K не присвоится значение, если сравнение ни разу не окажется истинным (в старой программе такого не могло быть); сейчас сравнение по крайней мере один раз сработает}

{приехали}

WriteLn;

WriteLn('Минимум среди максимальных элементов строк: ',Min,' в строке',K);

end.

P.S. Кстати, разберу ввод матрицы с подсказкой на ввод каждого элемента, у тебя сделано так:

for I:=1 to M do

begin

writeln ('A[', I, ',', J, ']=');

for J:=1 to N do

read (A[i,J]);

end;

Тут у тебя подсказка на ввод элемента выводится не перед вводом очередного элемента, а перед вводом элементов всей строки, один раз на всю строку, и выводимое в подсказке значение J в это время липовое, оставшееся после последнего выполнения ввода элементов строки.

Надо так:

for I:=1 to M do

for J:=1 to N do

begin write ('A[', I, ',', J, ']='); readln (A[i,J]);

end;

P.P.S. Если хочется вывод матрицы сделать красивым, то выводить лучше в форме с фиксированной запятой типа 3.142, а не в экспоненциальной форме 3.1415926536E+00, как по умолчанию. Тогда надо задавать при выводе формат для Real в виде Write(A[i,J]:8:3) или аналогично, тут 8 - всего отведенных позиций на размещение числа, а 3 - количество цифр после запятой. Если числа "обычные", будет намного красивее, но слишком маленькие числа станут нулями, а слишком большие автоматически раздвинут количество отводимых позиций и могут быть очень длинными.

Link to comment
Share on other sites

По поводу второй проги. Если ты еще сам не сделал, стучись в аську. Просто опять неохота лишний раз писать :blush2:

...спасиба за беспокойство...

Сделал, за этот семестр все! Лабы кончились! Зачет!

Link to comment
Share on other sites

;)

не могли бы вы помочь в написании не большой программы на Java + XML ;) Нужно что то типа небольшой библиотеки. В файле *.xml должно содержатся...книги, год изданий, автор ...ну и все такое... А java должна выводить (вывод любыми спосабами)... интерфейски такой ...чтобы можно было добовлять новые книги... и все это показывывалось... ;)

Link to comment
Share on other sites

Тролль: Спасибо! Теперь понятно.

Только попалась мне еще одна лаба на паскале: Дана матрица MxN. Надо вывести координаты всех седловых точек матрицы. Седловым называется эл-т матрицы одновременно максимальный в своем столбце и минимальный в своей строке и наоборот Я ее начал делать и стал тупить по-страшному :D : не могу написать нормальный алгоритм поиска. Вот файл проги которую я начал писать. :D Посмотрите пожалуйста и помогите написать поиск этого эл-та. :blink: Заранее благодарен!

102.TXT

102.TXT

Edited by killogramm
Link to comment
Share on other sites

killogramm:

Все просто: находим в каждой строке минимум и проверяем, является ли он максимумом соответствующего ему столбца. Все та же матрешка...

Вот только с "и наоборот" надо обдумать, как это реализовать. Можно продублировать операции, заменяя поиск по минимуму на поиск по максимуму и наоборот. Можно транспонировать матрицу и повторить все еще раз, только выводить найденные координаты надо будет с учетом транспонирования. А лучше всего действовать по стишку "Здесь все идет наоборот, вверх дном и наизнанку: Над крышами летает крот, а джем не лезет в банку". Просто вывернуть матрицу вверх дном и повторить поиск. Минимум станет максимумом и наоборот. Что и требуется.

var

A:array [1..20,1..20] of Real;

Min,Max:Real;

M,N,P,I,J,K,JMin,KMax,L:Integer;

begin

WriteLn('Введите число строк и, через пробел, число столбцов матрицы');

ReadLn(M,N);

for I:=1 to M do

begin

WriteLn('Введите элементы',I,'-й строки, разделяя их пробелами');

for J:=1 to N do Read(A[i,J]);

end;

{ввод закончили, начнем работу}

L:=0; {это счетчик седловых точек}

for P:=1 to 2 do

begin

for I:=1 to M do

begin

Min:=A[i,1];

for J:=1 to N do if A[i,J]<=Min then begin Min:=A[i,J]; JMin:=J end;

{в строке I минимум находится в столбце JMin}

Max:=A[1,JMin];

for K:=1 to M do if A[K,JMin]>=Max then begin Max:=A[K,JMin]; KMax:=K end;

{в столбце JMin максимум находится в строке KMax}

if KMax=I then begin L:=L+1; Writeln(L,'-я седловая точка:' ,I,', ',JMin); end;

{если максимум столбца, проходящего через минимальную точку строки, находится в этой же строке, это седловая точка}

end;

for I:=1 to M do for J:=1 to N do A[i,J]:=-A[i,J];

{вывернули матрицу наизнанку}

end;

if L=0 then WriteLn('Седловых точек нет');

end.

P.S. Твой алгоритм делает полную проверку для каждого элемента матрицы, не является ли он седловой точкой. Это тоже можно, но лучше было бы делать это только для возможных кандидатов, а их в каждой строке только два: минимум и максимум. И обрати внимание на поиск минимумов и максимумов, просто сравнение соседних элементов не годится. Оно подходит, только если функция одногорбая, и то с горбом в нужную сторону. А булевские выражения можно записывать проще. Например, проверку вроде if (ismaxstr(i,j)=true) ... можно записать проще как if ismaxstr(i,j) ...

А вообще реализация твоего алгоритма выглядит так:

for I:=1 to M do for J:=1 to N do

begin

ismaxstr:=true; isminstr=true; for K:=1 to N do begin if A[i,J]<A[i,K] then ismaxstr=false; if A[i,J]>A[i,K] then isminstr:=false; end;

ismaxstlb:=true; isminstlb=true; for K:=1 to M do begin if A[i,J]<A[K,J] then ismaxstlb=false; if A[i,J]>A[K,J] then isminstlb:=false; end;

if isminstr and ismaxstlb or ismaxstr and isminstlb then WriteLn(I,J);

end;

Edited by Тролль
Link to comment
Share on other sites

плз хелп! програму для решения етой гадости на бейсике.. Завод роботает по следующему графику: воскресенье одна смена, в остальние дни 2 смены (независимо от праздников). Опредилить дату k-й смены (начиная с завтрашнего дня) и будет ли она первой или второй в етот день. Сегодняшння дата dd/mm/gg - P-й день недели (извесно, что k меньше числа смен до конца месяца)

Народ плз хелп, очень срочно

плз хелп! програму для решения етой гадости на паскале (йоп).. Завод роботает по следующему графику: воскресенье одна смена, в остальние дни 2 смены (независимо от праздников). Опредилить дату k-й смены (начиная с завтрашнего дня) и будет ли она первой или второй в етот день. Сегодняшння дата dd/mm/gg - P-й день недели (извесно, что k меньше числа смен до конца месяца)

Народ плз хелп, очень срочно

Link to comment
Share on other sites

Добрый день! Я студент 4-го курса НТУУ КПИ. По курсу "Микропроцессорная техника" задали написать программу. Но не знаю как её реализовать. Прошу помочь в написании.

Условие:

Проссумировать 2 массива десятичных восьмирозрядных чисел 5C00:1000H и 5000:2000H. Результат который больше 5000H поместить в массив 5F00:3000H. Длина массива 150 чисел.

Пишем мы программы для микропроцессора 1810. Я смог написать программу только для "двоичных восьмирозрядных" чисел вместо "десятичных восьмирозрядных". Вот текст программы:

org 100h

mov cx,150d

mov si,1000h

m2: mov bx,5C00h

mov ds,bx

mov al,[si]

mov bx,5000h

mov ds,bx

add al,[si+1000h]

cmp al,50h

jc m1

mov bx,5f00h

mov ds,bx

mov [si+2000h],al

m1: si,1h

loop m2

end

Эта программа, которую написал я. Преподаватель не принял работу. Сказал что нужно написать согласно заданию. Одногрупники тоже розводят руками. Не знаю что делать. Это последняя работа. Прошу помочь в написании. Преподаватель посоветовал плюсовать десятичные восьмирозрядные числа по 2 разряда, но там нужно учитывать флаги(в случае переполнения, например). Не знаю как это сделать...

И ещё - как можно оптимизировать (то есть сделать лучше) уже написанную мной программу.

Буду благодарен за помощь.

Link to comment
Share on other sites

Emotion:

Писать и проверять программу некогда, да и под рукой сейчас ничего для этого нет, но для работы с десятичными числами в К1810ВМ86 имеются специальные команды. При этом числа могут быть представлены в видах по одной (код ASCII) или по две (BCD) цифры в байте. Байты складываются обычными командами сложения байтов: младшие - командой ADD, то есть без учета переноса, все остальные - командой ADC, с учетом возможности переноса из предыдущего байта, после каждого сложения двух байтов результат в AL корректируется специальной командой AAA (для ASCII) или DAA (для BCD). Судя по заданию, лучше использовать формат BCD (Binary Coded Decimal, если правильно помню расшифровку). То есть для сложения каждых двух чисел нужны будут одна команда ADD и три команды ADC, с командой DAA после каждой команды сложения плюс необходимые пересылки с регистром AL. В конце этой цепочки команд можно вставить проверку на превышение суммой числа 5000h (это самое сложное в задаче), то есть 20480, проще всего ИМХО побайтовым сравнением результата, начиная сверху, с байтами числа 20480 в коде BCD (можно ускорить это с четырех до двух сравнений, сравнивая слова), и если есть превышение, то пересылку четырех байтов суммы в массив результатов. Остается организовать цикл прохождения этой цепочкой команд по массивам исходных данных (в них каждое число занимает 4 байта).

Link to comment
Share on other sites

привет! есть задание: написать программу которая будет:

читать из файла следующие данные(для каждого из 100 обьектов):

позиционный номер

имя обьекта

и выводит преобразованный в бинарный код позиционный номер(0-99 в десятичном) на lpt1 порт в зависимости от полученного имени обьекта.

также необходима обратная функциональность: запись в файл позиционного номера и имени обьекта в зависимости от полученных данных от пользователя.

Язык написания: Си

Edited by LifeOnNet
Link to comment
Share on other sites

  • 2 weeks later...

Привет народ, помогите пожалуйста с такой задачей:

Исходная функция имеет вид:

Y =

x^2 + 45*Z-13 , если X > 0;

1/(X + Z) , если Х < 0;

13*Z - 45 , если Х = 0.

Составить:

1. Блок – схему.

2. Распределение исходных данных, промежуточных результатов и конечного значения Y по регистрам памяти.

3. Программу в исполнительных адресах гипотетического компьютера.

Link to comment
Share on other sites

Если не затруднит помоги выполнить лаб. на Delphi 7 (про гостиницу). Надо чтобы прога выполняла такие функции. Клиент приходит в гостиницу, чтобы снять номер. Прога вычисляла какие комнаты свободны (одноместные, двухместные, простые, люкс) и стоимость комнат. Сколько постельных принодлежностей на складе. Если можно с картинками!

Заранее РЕСПЕКТ!!

Link to comment
Share on other sites

Люди добрые!! Мне очень срочно надо сделать эту вещь на АССЕМБЛЕРЕ...

Необходимо написать программу, которая после ввода текста посчитает число пробелов в тексте и перенесет эти пробелы в центр строки...

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

вот...

Program Delitel;

uses crt;

var

stroka:string;

strln,i,countsp:integer;

Begin

writeln('Programm: Fuking Spaces');

writeln('Input String:');

readln(stroka);

strln:=length(stroka);

for i:=1 to strln do

if (stroka=' ') then

countsp:=countsp+1

else

stroka:=stroka+copy(stroka,i,1);

delete(stroka,1,strln);

strln:=length(stroka);

if (countsp>0) then

for i:=1 to countsp do

insert(' ',stroka,(strln div 2)+1);

writeln('Numrer of spaces: ',countsp:3);

writeln('Changed string:');

writeln(stroka);

readln;

end.

ПОМАГИТЕ ПОЖАЛУЙСТА!! Заранее спасибо...

Link to comment
Share on other sites

люди если вам не трудно на Турбо Паскале написать прогу.

- Дан двумерный массив целых чисел.Поменять местами элементы первой и третьей строки. :bye1:

Link to comment
Share on other sites

Gubis

Решение в лоб:

-----------------------------------

Program Change;

uses Crt;

var

arr : array[0..9, 0..9] of byte;

Temp1 : array[0..9] of byte;

Temp3 : array[0..9] of byte;

i, j, k : byte;

begin

ClrScr;

k:= 0;

for i:= 0 to 9 do begin

for j:= 0 to 9 do begin

arr[i, j]:= k;

inc(k);

end;

end;

{заполнили массив}

for i:= 0 to 9 do begin

for j:= 0 to 9 do begin

write(arr[i, j]:3);

end;

writeln;

end;

readln;

{вывели исходный массив}

for j:= 0 to 9 do Temp1[j]:= arr[0, j];

{запомнилил первую строку}

for j:= 0 to 9 do Temp3[j]:= arr[2, j];

{запомнили вторую строку}

for j:= 0 to 9 do arr[0, j]:= Temp3[j];

for j:= 0 to 9 do arr[2, j]:= Temp1[j];

{поменяли строки}

for i:= 0 to 9 do begin

for j:= 0 to 9 do begin

write(arr[i, j]:3);

end;

writeln;

end;

readln;

{вывели получившийся массив}

end. {change}

----------------------------------

Link to comment
Share on other sites

Решение Stolik конечно можно принять, но запоминать целых две строчки это много.

Предлагаю заменить раздел в котором происходит замена

for j:= 0 to 9 do Temp1[j]:= arr[0, j];

{запомнилил первую строку}

for j:= 0 to 9 do Temp3[j]:= arr[2, j];

{запомнили вторую строку}

for j:= 0 to 9 do arr[0, j]:= Temp3[j];

for j:= 0 to 9 do arr[2, j]:= Temp1[j];

{поменяли строки}

поменять на что-то типа

for j:=0 to 9 do begin

temp:=arr[0,j];

arr[0,j]:=arr[2,j];

arr[2,j]:=temp;

end;

в этом случае строчки

Temp1 : array[0..9] of byte;

Temp3 : array[0..9] of byte;

нужно заменить на

temp: byte;

В моем случае программа будет работать гораздо быстрее и занимать меньше памяти, хотя для такой короткой проги это не критично.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.



×
×
  • Create New...