Просмотр полной версии : Студентам с лабораторными сюда
Страницы :
1
2
3
4
5
6
[
7]
8
9
10
11
12
2scrat проасемблировал первое, там боллее новый асм и код какой то замутный я еще ламер что бы в нем разобраться))
ребят, очень нужно сотворить программу на делфи. может кто то помоч в написании? курс горит(((((
программа поиска экстремумов функции одной перменной методом квадратичной интерполяции-экстраполяции
функции и элементы интерфейса программы:
1) заставка
2) контроль ввода данных
3) меню:
1.справочная система:
-постановка задачи с описанием метода решения
-инструкция по использованию программы (для пользователя и контрольный пример)
-о программе
2. контрольный пример-реализация
3.ввод новых данных в файл
4. чтение и выборка данных из этого файла
5. вывод результата в отдельном окне
6. графическая иллюстрация данных и т.д.
7 печать результатов
4) подключить часы, калькулятор или календарь
отчет должен содержать:
1. описание алгоритма решения задачи (в текстовом виде или виде блоксхемы)
2. описание диалога пользователя с программой
3. описание классов (объектов) проекта
4. исходные файлы проекта и необходимые файлы данных
5. исполняемые файлы проекта
Savedracon
01.06.2009, 00:09
Лаба по ассамблеру.
1.Задан массив А из N чисел. Образовать массив В из чисел массива А, делящихся без остатка на 2.
Запутался...
мб все таки знает как написать, хотя завтра сдавать...
TASM lol.asm
.model small
.data
A db 1,8,4,3,5,7,9
N equ $-offset A ; razmer massiva A
B db N dup(0)
.code
start:
mov ax,@data
mov ds,ax
xor si,si
xor di,di
mov bl,2
mov cx,N
cikl:
xor ax,ax
mov al,A[si]
div bl
cmp ah,0
jne dal
mov al,A[si]
mov B[di],al
inc di
dal:
inc si
loop cikl
exit:
mov ax,4c00h
int 21h
думаю можно и красивее )
tasm lol.asm
tlink lol.obj
debug lol.exe
-u (смотришь где находится mov ax,4c00h у меня 0027)
-g CS:0027
-d DS:0000
смотришь дамп ищещь там 01 08 ... 09 и сразу за ними будут 08 04 00 ... в случае правильного результата )) а они там будут яж проверял
Доброго времени суток.
Помогите решить задачу на Delphi.
Условие такое:
Рассмотрим числовую последовательность, первоначально состоящую из двух единиц: 1, 1. Далее на каждом последующем шаге будем вставлять между соседними элементами их сумму. В примере добавляемые элементы выделены. Требуется написать программу, которая подсчитает сумму членов последовательности, построенной за K шагов.
От себя добавлю, что если 1 шаг, то будет это выглядить так: 1,2,1.
если 2 шага: 1,3,2,3,1 и т.д.
На форме будет толкьо 1 Edit и кнопка, edit будет отвечать за количество шагов ну и label наверное для вывода данных
MuXaJIbI4
02.06.2009, 15:52
прикольная задачка .. если не к спеху то буду дома напишу
program tr_s; uses crt,graph; var a,b:real; { Границы отрезка } r,r2:real; { Предыдущее и текущее приближенные значения интеграла } n:integer; { Счетчик } { Интегрируемая функция } function f(x:real):real; begin f:=1/(x*ln(x)*0.43429); end; { Метод трапеций } function trap(a,b:real;n:integer):real; var s:real; { Полученная сумма } h:real; { Шаг } m:integer; { Счетчик } begin h:=(b-a)/(n-1); { Определяется шаг } s:=(f(a)+f(b))/2; { Начальное значение суммы } for m:=1 to n-2 do s:=s+f(a+m*h); { Суммирование остальных элементов } trap:=s*h; { Возвращается значение интеграла } end; { Метод Симпсона } function simpson(a,b:real;n:integer):real; var s:real; { Сумма } h:real; { Шаг } m:integer; { Счетчик } mn:integer; { Очередной множитель } begin h:=(b-a)/(n-1); { Рассчитывается шаг } s:=f(a)+f(b); { Начальное значение шага } mn:=4; { Первый множитель - 4 } { Суммирование остальных элементов } for m:=1 to n-2 do begin s:=s+mn*f(a+h*m); if (mn=4) then mn:=2 else mn:=4;{Изменение множителя 2<>4 } end; simpson:=s*h/3; { Возвращается вычисленное значение } end; { Процедура вычисления порядка числа } procedure norm(a:real); var n:real; begin { Если число слишком мало - возвращается ноль } if (a<0.00001) then n:=0 else begin { Если число меньше единицы } if (a<1) then begin n:=1; repeat a:=a*10; n:=n/10; until (trunc(a)<>0); end else begin { Если число больше единицы } n:=1; repeat a:=a/10; n:=n*10; until (trunc(a)=0); end; end; a:=n; end; { Построение графика функции } procedure out_grp(xmin,xmax,ymin,ymax:real); var drv,mode:integer; mx,my:real; { Масштабы по осям } xx,yy:real; { Текущие координаты } sx:real; { Шаг по оси X } dltx,dlty:integer;{ Приращение на графике при смещении графика } s:string; { Строка } begin { Инициализация графики } drv:=VGA; mode:=VGAHi; initgraph(drv,mode,''); { Выяснение порядков минимумов и максимумов } norm(xmax); norm(ymax); norm(ymin);ymin:=ymin/10; norm(xmin);ymin:=ymin/10; if (xmin/xmax)>0.01 then dltx:=20 else dltx:=0; if (ymin/ymax)>0.01 then dlty:=20 else dlty:=0; { Расчет масштабов } mx:=500/(xmax-xmin); my:=400/(ymax-ymin); { Расчет приращение по X } sx:=(xmax-xmin)/550; { Вывод системы координат } settextjustify(1,1); xx:=xmin; repeat setcolor(1); line(trunc(40+mx*(xx-xmin)+dltx),20,trunc(40+mx*(xx-xmin)+dltx),469); str(xx:4:2,s); setcolor(15); outtextxy(trunc(40+mx*(xx-xmin)+dltx),475,s); xx:=xx+50*sx; until (xx>(xmax+50*sx)); yy:=ymin+(ymax-ymin)/10; repeat setcolor(1); line(41,trunc(470-my*(yy-ymin)-dlty),630,trunc(470-my*(yy-ymin)-dlty)); str(yy:4:2,s); setcolor(15); outtextxy(20,trunc(470-my*(yy-ymin)-dlty),s); yy:=yy+(ymax-ymin)/10; until (yy>(ymax+(ymax-ymin)/10)); line(40,0,40,480); line(0,470,640,470); line(40,0,38,10); line(40,0,42,10); line(640,470,630,472); line(640,470,630,468); { Вывод графика } xx:=xmin; repeat yy:=f(xx); putpixel(trunc(40+mx*(xx-xmin)+dltx),trunc(470-my*(yy-ymin)-dlty),7); xx:=xx+sx; until (xx>xmax); outtextxy(300,10,' Press ESC to continue '); repeat until (readkey=#27); closegraph; end; { Основная программа } begin { Ввод границ отрезков } clrscr; write(' Vvedite A,B: '); readln(a,b); { Выводится график функции } out_grp(a,b,f(b),f(a)); { Вычисляется интеграл по методу трапеции } n:=3; r:=trap(a,b,n); { Начальное значение } repeat r2:=r; { Запоминается предыдущее значение } n:=n+2; { Увеличивается количество шагов } r:=trap(a,b,n); { Рассчитывается новое значение } until (abs(r-r2)<0.001);{ Повторяется до достижения необходимой точности } { Вывод результатов } writeln(' Rezultat po metodu trapeciy raven: ',r:6:3); writeln(' dlya polucheniya neobhodimoy tochnosti interval byl razbit na '); writeln(n,' otrezkov '); { Вычисляется интеграл по методу Симпсона } n:=3; r:=simpson(a,b,n); { Начальное значение } repeat r2:=r; { Запоминается предыдущее значение } n:=n+2; { Увеличивается количество шагов } r:=simpson(a,b,n); { Рассчитывается новое значение } until (abs(r-r2)<0.001);{ Повторяется до достижения необходимой точности } { Вывод результатов } writeln; writeln(' Rezultat po metodu Simpsona raven: ',r:6:3); writeln(' dlya polucheniya neobhodimoy tochnosti interval byl razbit na '); writeln(n,' otrezkov '); end.
какой изврат в щелку писать ппц))) +1
какой изврат в щелку писать ппц))) +1
ололо
да уже разобрался сам=))
Подскажите пожалуйста, как эта функция записывается в паскалевском виде:
y=log (3 внизу) x(x+x^2)^-1
http://i052.radikal.ru/0906/7e/33b3636ea81d.jpg
вот так она тут выглядит.
хм-м, x(x+x^2)^(-1) = x / (x+x^2) = x / [x(1 + x)] = 1 / (1 + x). Или же в минус первой степени все выражение x(x+x^2)?
ЗЫ. log(3)x = ln x / ln 3, x^(-1) = 1 / x
хм-м, x(x+x^2)^(-1) = x / (x+x^2) = x / [x(1 + x)] = 1 / (1 + x). Или же в минус первой степени все выражение x(x+x^2)?
ЗЫ. log(3)x = ln x / ln 3, x^(-1) = 1 / x
Ну нет, там же log(3)x умноженное на вот
это:
(x+x^2)^(-1), т.е. 1/(x+x^2)
итак, log(3)x умноженное на 1/(x+x^2) ... вот такая тема..
Ну если так, то:
y := log (x) / log (3) / (x + x * x);
Ну если так, то:
y := log (x) / log (3) / (x + x * x);
ошибку выдаёт =(
Как еще можно записать эту функцию?) подскажите плз)
ошибку выдаёт =(
Как еще можно записать эту функцию?) подскажите плз)
Вместо log нужно писать ln
Вместо log нужно писать ln
воот, спасибо огромное и тебе, и krypt3r'y!
Помогите сделать вывод данных в проге про студентов: нужно упорядочить по возрасту. Сортировку вроде сделал, а вывести не получается:
#include <stdio.h>
#include <conio.h>
struct student
{
char name[30];
int group;
int age;
};
int main()
{
struct student stud[10];
student temp;
int i,j,n;
printf("Number of students:");
scanf("%d", &n);
//Ввод данных
for(i=0;i<n;i++)
{
printf("Name:");
scanf("%s", stud[i].name);
printf("Age:");
scanf("%d", &stud[i].age);
printf("Number of group:");
scanf("%d", &stud[i].group);
}
//Сортировка
for (i=0; n-1; i++)
{
for (j=0; n-1; i++)
{
if (stud[j].age > stud[j+1].age)
{
temp=stud[j];
stud[j] = stud[j+1];
stud[j+1] = temp;
}
}
}
getch();
}
помогите доделать курсовую по паскалю,
тема телефонный справочник,
программа на графике осталось сделать добавление/редактирование/удаление записей
c0m пиши конкретнее, что не получается. а лучше код выложи.
вобщем к понедельнику нужно сделать кроссворд на паскале...(
если у кого нибудь....вдруг...на компе завалялся какой нибудь кроссворд...
или что нибудь подобное..поделитесь пожалуйста.
в сети искал,но толком ни чего не нашел...
помогите)
Трям (http://kursovik.net/programming/101023.html)
приобрести исходник программы за 640 рублей это через чур(
я лучше двойку получу,и в августе экзамен сдавать буду...
открываю поле ред-ия, но в первое поле не вписываются данные, в последующие разы редактирования нормально
{<<<<<<<<<<<<<<<<<<<<<<<<<<<ПРОЦЕДУРА РЕДАКТИРОВАНИЯ ЗАПИСИ}
procedure Edit(id : integer); {Редактирует заданую строку key[i2]}
var
i:integer;
namew,adresw,numberw,indexw,ide:string;
nk,ak,nmk,ik:char;
begin
Size:= ImageSize(200,100,500,300);
GetMem(p,size);
GetImage(200,100,500,300,p^);
SetFillStyle(0,9);
Bar(200,100,500,300);
SetFillStyle(1,9);
Rectangle(205,105,495,295);
SetColor(15);
Globalindex:=Globalindex+1;
OutTextXY(220,115,' Edit...');
SetTextStyle(2,0,2);
OutTextXY(220,160,'Name:');
OutTextXY(220,190,'Adres:');
OutTextXY(220,220,'Number:');
OutTextXY(220,250,'Index:');
str(id,ide);
OutTextXY(220,125,ide);
Rectangle(280,155,450,170);
SetFillStyle(SolidFill,9);
Bar(281,156,449,169);
Rectangle(280,185,450,200);
SetFillStyle(SolidFill,9);
Bar(281,186,449,199);
Rectangle(280,215,450,230);
SetFillStyle(SolidFill,9);
Bar(281,216,449,229);
Rectangle(280,245,450,260);
SetFillStyle(SolidFill,9);
Bar(281,246,449,259);
ts[id].surname:='';
ts[id].adres:='';
ts[id].number:=0;
ts[id].index:=0;
ClrBuf;
{---------------------------ИМЯ------------------------}
d:=1;
while d<>0 do
begin
nk:=ReadKey;
if (nk=#13) then
begin
ts[id].surname:=upstr(namew);
namew:='';
d:=0;
end
else
begin
case nk of
'a'..'z','A'..'Z',' ' :
begin
namew:=namew+nk;
SetColor(15);
OutTextXY (290,160,namew);
end;
#9 : d:=0;
end;
end;
end;
{\--------------------------ИМЯ------------------------}
d:=1;
while d<>0 do
begin
ak:=ReadKey;
if (ak=#13) then
begin
ts[id].adres:=upstr(adresw);
SetColor(15);
adresw:='';
d:=0;
end
else
begin
case ak of
'a'..'z','A'..'Z',' ','0'..'9' :
begin
adresw:=adresw+ak;
SetColor(15);
OutTextXY (290,190,adresw);
end;
#9 : d:=0;
end;
end;
end;
d:=1;
while d<>0 do
begin
nmk:=ReadKey;
if (nmk=#13) then
begin
Val(numberw,fn,qwe);
ts[id].number:=fn;
SetColor(15);
numberw:='';
d:=0;
end
else
begin
case nmk of
'0'..'9' :
begin
numberw:=numberw+nmk;
SetColor(15);
OutTextXY (290,220,numberw);
end;
#9 : d:=0;
end;
end;
end;
d:=1;
while d<>0 do
begin
ik:=ReadKey;
if (ik=#13) then
begin
Val(indexw,fn,qwe);
ts[id].index:=fn;
SetColor(15);
indexw:='';
d:=0;
end
else
begin
case ik of
'0'..'9' :
begin
indexw:=indexw+ik;
SetColor(15);
OutTextXY (290,250,indexw);
end;
#9 : d:=0;
end;
end;
end;
for i:=0 to High(st) do
begin
st[i]:=ts[i];
end;
PutImage(200,100,p^,0);
FreeMem(p,size);
SetTextStyle(0,0,0);
OutResult;
end;
{>>>>>>>>>>>>>>>>>>>>>>>>>>>>>ПРОЦЕДУРА ДОБАВЛЕНИЯ НОВОЙ ЗАПИСИ}
NightJack
07.06.2009, 06:40
вобщем к понедельнику нужно сделать кроссворд на паскале...(
если у кого нибудь....вдруг...на компе завалялся какой нибудь кроссворд...
или что нибудь подобное..поделитесь пожалуйста.
в сети искал,но толком ни чего не нашел...
помогите)
посмотри этот (http://www.delphisources.ru/pages/sources/raznoe/2008-year/crossword-creator.html)
A-Spt_N(o)
08.06.2009, 13:52
Народ помогите пожалуйста. До пятерки по предмету не хватает одной лабораторной работы... К сожалению она идет по ASP.NET которого я не знаю вообще:(
Задание такое: выбор страниц по ссылке на сайте.
Помогите очень прошу... завтра защищаться надо:( всем кто поможет добавлю к репе.Тут работы минут на 10-15. Извините если не в том месте создал тему.
Заранее огромное спасибо.
:confused: зацетирую героя одного сериала: "я что-то плохо не понял..."
выбор страниц по ссылке на сайте.
нельзя ли подробнее?
A-Spt_N(o)
08.06.2009, 15:14
ну как я понял что-то вроде: Открывается скрипт aspx... вводится адрес сайта... скрипт осуществляет поиск ссылок по этому сайту, предоставляет их пользователю а пользователь уже выбирает по какой именно перейти
это так как понял я.
только над регулярным выражением ещё нужно поколдовать.
а в общих чертах вот:
WebClient webClient = new WebClient();
Stream stream = webClient.OpenRead("http://forum.antichat.ru");
StreamReader streamReader = new StreamReader(stream);
string html = streamReader.ReadToEnd();
Regex reg = new Regex(@"(<a href=.*>.+</a>)");
MatchCollection mc = reg.Matches(html);
string links = "";
foreach (Match match in mc) {
links += match.Value + "<br/>";
}
Label1.Text = links;
NightJackспасибо)
я сам уже написал...получил 4=)
всех за помощь благодарю)))
Гипножаб
09.06.2009, 08:24
Помогите пожалуйста.На С++:
Написать программу работы с базой отдела кадров предприятия. База хранится в текстовом файле, его размер может быть произвольным. Каждая строка файла содержит запись об одном сотруднике. Формат записи: фамилия и инициалы (30 поз., фамилия должна начинаться с первой позиции), год рождения (5 поз.), ок¬лад (10 поз.).
Программа должна обеспечивать:
□ начальное формирование и дополнение базы данных о сотрудниках;
□ корректировку сведений о сотрудниках;
□ поиск сотрудника в базе по фамилии;
□ поиск самого молодого сотрудника;
Для представления базы в ОП использовать класс list, реализующий линейный двусвязный список.
Основная загвоздка именно в реализации класса list, код для создания самой базы данных, поиска в ней и т.д. впринципе есть
Гипножаб
мож что полезное
http://forum.mql4.com/ru/10962
для записи в файл
а для чтения
GetPrivateProfileStringA()
читай в
http://msdn.microsoft.com/en-us/library/ms724353.aspx
c++
задача:
Написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке.
в гугле нужные функции нашел только для C# -(
fputc, fgetc, fputs, fgets
sprintf, sscanf
fprintf, fscanf
выбирай
fputc, fgetc, fputs, fgets
sprintf, sscanf
fprintf, fscanf
выбирай
напиши, пожалуйста, код примерный
функций много, вариантов тоже, путаюсь.
А вот этого уже полно в гугле, да и msdn никто не отменял (с).
PS Набираешь название функций в гугле и тебе выдается довольно много примеров использования.
А вот этого уже полно в гугле, да и msdn никто не отменял (с).
PS Набираешь название функций в гугле и тебе выдается довольно много примеров использования.
да гуглил я эти обрывки программ. сообщи всем знакомым программистам, чтобы к примерам кодов писали комментарии.
Вот хороший материал. Все описано и объяснено. (http://frolov-lib.ru/books/bsp/v19/ch3_9.html)
Еще один мануал (http://www.intuit.ru/department/se/pposix/5/5.html)
Доков очень много.
BrainDeaD
09.06.2009, 13:56
c++
задача:
Написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке.
в гугле нужные функции нашел только для C# -(
вот пример если каждое предложение в новой строке.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
string sentence [500];
int i=1;
ifstream myfile ("example.txt");
if (myfile.is_open())
{ while (! myfile.eof() )
{ getline (myfile,line);
sentence [i] = line;
i++
}
myfile.close();
while (i > 0)
{ cout << sentence[i] << endl;
i--;
}
}
else cout << "Unable to open file";
return 0;
}
код не самый красивый, но для понимания хватит )))))))
velvetdust
09.06.2009, 17:11
Сделайте пожалуйста за вознаграждение 4 лабораторные работы (язык Си, не С++ !!!)
1. Дан массив структур. Структура содержит элементы: имя, пол, рост, группа. Написать программу, которая вводит информацию о каждом студенте. Определить, есть ли в группе хотя бы 2 человека одного роста.
2. Дан текстовый файл. Выяснить, есть ли в строках слова, оканчивающиеся на 'f', и сколько таких слов. В результирующий файл записать количество таких слов и номера строк.
3. В текстовом файл заменить все последовательности идущих подряд пробелов одним пробелом. Новый файл не создавать
4. Дан текстовый файл. Если в командной строке
* не заданы параметры - распечатать все строки, а если
* задана опция -n, распечатать последние N строк
К ним нужно сделать отчеты (примеры выполненных работ и отчеты к ним есть во вложенном архиве)
Связаться со мной:
- id3650997 вКонтакте
velvetdust - собака - яндекс.ру
veletdust2008 - собака - gmail.com
Оплата договорная. Заранее спасибо!
архив - http://dump.ru/file/2872076
P.S. Преподаватель очень строгий, прошу сделать код попроще, не применяя что-то выходящее за рамки первого курса (в архиве есть примеры решений)
Хоть бы кто-то перед тем как задать вопрос просматривал тему...все задания однотипные и код уже много раз выкладывался.
ZeroHour
10.06.2009, 01:13
люди, помогите плиз с реализацией алгоритма Хаффмана на Си
ЗЫ - поиск по теме ничего не дал, а вручную просматривать 156 страниц както накладно )
BrainDeaD
10.06.2009, 01:30
а в гугле поискать?
вот (http://www.daniweb.com/code/snippet5.html#) проскроль там вниз.
ZeroHour
10.06.2009, 01:42
ага, особенно классные строчки
char *filein;
scanf("%s",filein);
память выделять у нас нынче не модно..
все найденное в гугле или очень уж запутано, или с такими ошибками, что даже страшно компилить)
если бы нашел чтото толковое - не писал бы сюда;)
BrainDeaD
10.06.2009, 03:23
да да, не стоит благодарности.
кто сказал, что копипастить надо? это тебе пример реализации, а дальше дерзай! или ты думаешь, что тебе сейчас 200 строк нового кода по алгоритму напишут?
ZeroHour
10.06.2009, 03:32
просто если человек, написавший алгоритм, не может нормально даже получить строку, то на мой взгляд в его алгоритм лучше не смотреть :)
Сделайте пожалуйста за вознаграждение 4 лабораторные работы (язык Си, не С++ !!!)
Вообще-то хоть на первом курсе нужно чему-то учиться и делать самому, хотя-бы такие вещи. Ну да ладно, может у тебя есть уважительная причина? ))) Вот набросал все четыре задачи, а отчеты к ним делай сам, во всяком случае, этот код намного лучше того, что лежит в так называемых примерах у тебя.
1)
#include <stdio.h>
#include <stdlib.h>
enum {NAME_LEN_MAX=100,GROUP_NAME_MAX=20};
typedef struct {
char name[NAME_LEN_MAX];
char group[GROUP_NAME_MAX];
int sex;
int height;
} student;
void fill_student(student * stud);
int main(int argc, char ** argv){
int stud_count = 0;
(void)printf("Enter the count of students: ");
(void)scanf("%d",&stud_count);
student * students = malloc(stud_count * sizeof(student));
for(int i=0; i < stud_count; i++)
fill_student(&students[i]);
for(int i=0; i < stud_count - 1; i++)
for(int j=i+1; j < stud_count; j++)
if(students[i].height == students[j].height)
(void)printf("They have equivalent height(%d) %s and %s\n",
students[i].height,students[i].name,students[j].name);
exit(EXIT_SUCCESS);
}
void fill_student(student * stud) {
printf("Enter the name: ");
scanf("%s",stud->name);
printf("Enter the group: ");
scanf("%s",stud->group);
printf("Enter the sex [0 or 1]: ");
scanf("%d",&stud->sex);
printf("Enter the height: ");
scanf("%d",&stud->height);
}
2)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum{STRING_LEN_MAX=250};
int main(int arg,char ** argv) {
FILE * fd = fopen("infile.txt","r");
FILE * out_file = fopen("outfile.txt","w");
char buf[STRING_LEN_MAX];
int i=1;
int all_count=0;
(void)fgets(buf,STRING_LEN_MAX,fd);
while(!feof(fd)){
int cur_string_count=0;
for(int j=0; j<strlen(buf)-1;j++)
if(buf[j]=='f'&&(buf[j+1]==' '||buf[j+1]==','||buf[j+1]=='.'))
++cur_string_count;
if(buf[strlen(buf)-2]=='f')
++cur_string_count;
if(cur_string_count>0)
(void)fprintf(out_file,"String number %d have %d words\n",i,cur_string_count);
all_count+=cur_string_count;
++i;
(void)fgets(buf,STRING_LEN_MAX,fd);
}
(void)fprintf(out_file,"Total: %d\n",all_count);
fclose(fd);
fclose(out_file);
exit(EXIT_SUCCESS);
}
3)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum{STRING_COUNT_MAX=100,STRING_LEN_MAX=250};
int main(int argc, char ** argv){
FILE * infile = fopen("infile.txt","r");
char * strings[STRING_COUNT_MAX];
char buf[STRING_LEN_MAX];
int string_num = 0;
(void)fgets(buf,STRING_LEN_MAX,infile);
while(!feof(infile)) {
strings[string_num]=calloc(STRING_LEN_MAX,sizeof(char));
for(int i=1,j=0;i<strlen(buf);i++){
if(buf[i]==' ' && buf[i-1]==' ')
continue;
else
strings[string_num][j++]=buf[i];
}
++string_num;
(void)fgets(buf,STRING_LEN_MAX,infile);
}
fclose(infile);
infile = fopen("infile.txt","w");
for(int i=0;i<string_num; i++)
(void)fprintf(infile,"%s\n",strings[i]);
fclose(infile);
exit(EXIT_SUCCESS);
}
4)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum{STRING_COUNT_MAX=100,STRING_LEN_MAX=250};
int main(int argc, char ** argv) {
int last_lines=0, string_num=0;
if(argc == 2)
last_lines = atoi(argv[1]);
FILE * infile = fopen("infile.txt","r");
char buf[STRING_LEN_MAX];
char * strings[STRING_COUNT_MAX];
(void)fgets(buf,STRING_LEN_MAX,infile);
while(!feof(infile)){
strings[string_num] = calloc(STRING_LEN_MAX,sizeof(char));
(void)strcpy(strings[string_num++],buf);
(void)fgets(buf,STRING_LEN_MAX,infile);
}
int string_index = 0;
if(last_lines != 0)
string_index = string_num - last_lines;
if(string_index < 0) string_index = 0;
for(int i = string_index; i < string_num; i++)
(void)printf("%s",strings[i]);
fclose(infile);
exit(EXIT_SUCCESS);
}
Разбирайся, шалопай :) Удачной сессии ))))
Извеняюсь что создал отдельную тему..
нужна помошь....курсовая работа-кроссворд в паскале...
сдавать завтра...
нужно сделать так что бы слова пересекались(по вертикали,по горизонтали)
но как это сделать?
...кому не сложно подправьте так что бы три слова пересекались друг с другом...
пожалуйста...мне эта работа очень важна...отчитываться перед директором и учителями(
program kross;
uses crt,graph;
var
gm,gd,i,x,o:integer;
a,b,c,d:string;
begin
gm:=detect;
initgraph(gm,gd,'c:\users\dimike\desctop\paskal\bg i');
setbkcolor(0);
setcolor(5);
cleardevice;
settextstyle(0,0,1);
outtextxy(250,160,'Krossvord po teme:');
outtextxy(160,180,'kompyuter & programnoe obespe4enie');
settextstyle(4,0,1);
outtextxy(340,170,'os Windows');
settextstyle(0,0,1);
outtextxy(200,200,'dlya prodolgeniya najmite "enter"');
outtextxy(20,460,'vipolnil Dmitriy ****');
readln;
cleardevice;
setbkcolor(1);
setfillstyle(1,2);
setcolor(14);
bar(0,150,640,480);
readln;
cleardevice;
setcolor(5);
setbkcolor(0);
outtextxy(10,10,'так называют совокупность аппаратных программных');
outtextxy(10,20,'средств компьютера');
outtextxy(10,30,'обеспечивающих работу с графикой,звуком,видеоинфор мацией!?');
{мультимедиа}
gotoxy(1,3);
readln(a);
settextstyle(0,1,1);
outtextxy(317,240,a);
readln;
cleardevice;
settextstyle(0,0,1);
outtextxy(10,10,'устройство ввода информации в компьютер??? ');
{микрофон}
gotoxy(1,3);
readln(b);
settextstyle(0,1,1);
outtextxy(317,240,a);
settextstyle(0,0,1);
outtextxy(310,255,b);
readln;
cleardevice;
settextstyle(0,0,1);
outtextxy(10,10,'универсальное устройство для обработки информации');
{компьютер}
gotoxy(1,3);
readln(c);
settextstyle(0,1,1);
outtextxy(317,240,a);
settextstyle(0,0,1);
outtextxy(310,255,b);
settextstyle(0,1,1);
outtextxy(332,229,c);
readln;
closegraph;
end.
я школьник я нуб
подправьте пожалуйста
сам я нуб в паскале но делали давно чето похожее ток не через координаты а задавали массивами
на самом деле не важно,как делать...преподы не уточняли)
Baofy а на компе случайно не сохранилась программа?
ребят, помогите доделать курсовую...
там задача на ассемблере...нужна к ней блок схема ( хотяб приблизительная ) и мои ошибки может гдето есть, то поправьте :
y=3(3x+1-t)+u+w
y=x(and)w(or)t(xor)u
где, x = 09, u = 30, t = 09, w = 06
вот энти две программы должны быть в одной программе.... у меня вышло так:
.model small
.data
x dw 09
u dw 30
t dw 09
w dw 06
y dw ?
.code
begin:
mov ax,@data
mov ds,ax
mov ax,x
add ax,x
add ax,x
inc ax
sub ax,t
mov ax,bx
add ax,bx
add ax,bx
add ax,u
sub ax,w
mov ax,dx ;это я заношу первую программу в регистр, а далее идет след. программа..я не знаю как ее написать (
____________
тут след. программа.
____________
mov ax,4c00h
int 21h
end begin
выручайте, кому не сложно...если курсовую не здам до понедельника - вылечу с универа ((
BlackSilver
11.06.2009, 16:42
Попробуй так:
mov ax,x
and ax,w
or ax,t
xor ax,u
mov y,ax
спс, ну впринципе вторая часть у меня уже есть..мне это не очень важно...мне важна блок схема..
я просто в блок схемах слабак (
можешь хоть приблизительную нарисовать ?
http://i010.radikal.ru/0906/95/2985c4c1a049.bmp
точно курсак? может лабораторная все-таки? ;)
курсовая. спасибо тебе, и всем кто помог :)
to mozy
так поможешь нарисовать ?
можешь хоть приблизительную нарисовать ?
приблизительную так приблизительную.. я нарисовал :)
profile: а самим так сложно нарисовать? я дал приблизительное, Mozy показал тебе ГОСТ.
пуск-выпонить-mspaint и рисуй.
ввод данных:
http://cert.obninsk.ru/gost/282/045.jpg
любая команда:
http://cert.obninsk.ru/gost/282/055.jpg
etc ..
uses crt,graph;
const
q:array[1..3] of string=('1.SUDA VVODI VOPROS PRO MYLTIMEDIYU','2.Pro MIKROPHONE','3.PRO KOMP');
word:array[1..3] of string=('otvet na perviy vopr('po russki vvodi!','na vtoroy','na tretiy');
var
i,j,x,y,k,driver,mode:integer;
st,path:string;
begin
path:='c:\tp7\bin';
driver:=vga;
mode:=vgahi;
InitGraph(driver,mode,path);
x:=300;
y:=80;
setfillstyle(solidFill,black);
bar(0,0,640,480);
Setfillstyle(solidFill,White);
for i:=1 to 11 do
begin
Bar(x,y,x+10,y+10);
x:=x+12;
end;
x:=300;
for i:=1 to 8 do
begin
bar(x,y,x+10,y+10);
y:=y+12;
end;
x:=360;
y:=8;
for i:=1 to 9 do
begin
bar(x,y,x+10,y+10);
y:=y+12;
end;
x:=0;
y:=300;
for i:=1 to 3 do
begin
OuttextXY(x,y,q[i]);
y:=y+20;
end;
OuttextXY(x,y+10,'vvedi nomer voprosa, a zatem vvedite otvet');
k:=0;
SetFillStyle(SolidLn,black);
SETcOLOR(BLACK);
while k<3 do
begin
GotoXY(1,1);
Bar(0,0,299,299);
readln(i);
readln(st);
if (st=word[i]) then
begin
k:=k+1;
case i of
1:
begin
x:=300;
y:=80;
for j:=1 to length(st) do
begin
OuttextXY(x,y,word[i][j]);
x:=x+12;
end;
end;
2:
begin
x:=300;
y:=80;
for j:=1 to length(st) do
begin
OuttextXY(x,y,word[i][j]);
y:=y+12;
end;
end;
3:
begin
x:=360;
y:=8;
for j:=1 to length(st) do
begin
OuttextXY(x,y,word[i][j]);
y:=y+12;
end;
end;
end;
end;
end;
readln;
closeGraph;
end.
Там кто-то кроссворд просил. На скорую руку думаю сойдет...ну я конечн не заморачивался там с супер-пуперским оформлением, но всё же он не то, что был у вас первоначально, а намного сильнее. Код совсем другой, вставь ответы на вопросы и сами вопросы в константах. Написан на TP7, поэтому еще не забудь написать путь к драйверам. Пиши ответы на русском, кроссворд для русской языка, не для транслита или инглиша.
winlogon.exe
12.06.2009, 16:49
Напишите плиз пример отправки icq сообщения на delphi. Это не лабораторная работа, написал сдесь чтоб тему новую не создавать.
TICQClient (http://forum.asechka.ru/showthread.php?t=97186)
winlogon.exe:
Fata1ex Писать надо крупнее или разборчивее ) что же ты :)
uses ...,TICQClient,..;
....
ICQ:=TICQClient.create(nill);
ICQ.Uin:=12345678;
ICQ.Password:='password';
ICQ.Login();
ICQ.sendmessage(1234567,'Hi! Test Message!');
winlogon.exe
12.06.2009, 19:05
Elwaux, похоже тут одна авторизация а мне нужен пример отправки сообщения
ICQ.sendmessage(1234567,'Hi! Test Message!');
winlogon.exe
12.06.2009, 19:08
Ок спс
извени что беспокою, у меня такая проблема, так как пока сам учю С++ знаю только консолью особенность этого языка
Сейчас возникла необходимость написания GUI приложения на С++, в частности:
1: уметь создавать диалоговое приложение со списком заполненным
несколькими строками и обработчиком событий движения мышки - за мышкой
должен следовать белый кружечек.
2:Уметь создавать диалоговое приложение со ползунками или
ProgressBar`ами следующими за мышкой (как на лабораторных)
3: Уметь создавать таймеры и обработчики нажатий на кнопки.
Заранее спасибо!!!!!!!!!!!
"Разработать функцию - генератор простых чисел, вос-пользовавшись первой формулой Вилланса. Создать про-грамму-оболочку, красиво демонстрирующую работу этой функции."
--------------------------------------------------------
само задание
--------------------------------------------------------
1)http://s61.radikal.ru/i174/0906/bf/500e80ed4818.gif
расписать
2)http://s60.radikal.ru/i170/0906/20/2b0bab7969a3.gif
собственно вот формулы
собственно просьба расписать формулы(
помагите пожалуиста разобратся с функцыеи SetWindowsHookEx () в с++ ато некак немагу наити ничо понятново нужно чтобы ета функцыя перехвативлала нажатия клавиши и заменяла на нажатие другое тоесть иметировала бы нажатие другои клавиш хачу для себя написат прогу и розобратся с етим тока вот документацыи ненахожу понятно ибо пока ешё неселён в програмирование
извени что беспокою, у меня такая проблема, так как пока сам учю С++ знаю только консолью особенность этого языка
Сейчас возникла необходимость написания GUI приложения на С++, в частности:
1: уметь создавать диалоговое приложение со списком заполненным
несколькими строками и обработчиком событий движения мышки - за мышкой
должен следовать белый кружечек.
2:Уметь создавать диалоговое приложение со ползунками или
ProgressBar`ами следующими за мышкой (как на лабораторных)
3: Уметь создавать таймеры и обработчики нажатий на кнопки.
Заранее спасибо!!!!!!!!!!!
От вас требуют WinAPI? Тогда юзай книги Петзольда или Петцольда (переводят его фамилию по-разному). Это, некогда, хороший, программист, который к данному моменты сошел с ума... А книги у него хорошие. Сам читал - не жалуюсь и на потраченные деньги не сетую, вот только не стоит покупать его книгу по C# - это уже стадия шизофрении. Знающие поймут, о чем я...
"Разработать функцию - генератор простых чисел, вос-пользовавшись первой формулой Вилланса. Создать про-грамму-оболочку, красиво демонстрирующую работу этой функции."
--------------------------------------------------------
само задание
--------------------------------------------------------
1)http://s61.radikal.ru/i174/0906/bf/500e80ed4818.gif
расписать
2)http://s60.radikal.ru/i170/0906/20/2b0bab7969a3.gif
собственно вот формулы
собственно просьба расписать формулы(
Одна и та же функция, только во втором случае она на что-то умножается ))) Тебе не стыдно? Это банальные вещи...
ss88,
да я только начал изучать=)
winlogon.exe
14.06.2009, 12:26
Огромная прозьба сделать процедуру сортировки матрицы, завтра крайний срок сдачи. Авто ввод и все такое сделано, только саму процедуру (исходник) http://upwap.ru/454509 условия в исходнике.
Язык указывайте ...
Сверху delphi
velvetdust
14.06.2009, 16:21
люди, помогите плиз с реализацией алгоритма Хаффмана на Си
ЗЫ - поиск по теме ничего не дал, а вручную просматривать 156 страниц както накладно )
http://compression.ru/download/sources/huff/mastrukov_huff.rar
http://ishodniki.ru/list/info.php?cat=6&id=1620&show=cpp_arhiv
Вот условие:
Напиши те процедуру convert, преобразовать получающую один параметр date (дата), типа string, содержаший значение календарной даты. В форме мм/дд/гг. Например: 14 декабря 1960 будет изображен как 12.14.02. Задача процедуры convert состоит в преобрзование полученого значения в форме месяц день год. Так результат только что приведенной даты 12.14.02 должно стать декабрь 14,2002 (предполагается что все даты относятся к 21 веку)
А в чем проблема собственно? Возьми мануал по паскалю, и почитай по словам procedure, string, array, val
последний раз писал на паскале лет 5 назад, ну попробую вспомнить:
procedure convert(date: string; var result: string);
var
mm, dd, yy : string;
i, err : integer;
months : array[1..12] of string[20];
begin
months[1] := 'январь';
...
months[12] := 'декабрь';
mm := date[1]+date[2];
dd := date[4]+date[5];
yy := date[7]+date[8];
val(mm, i, err);
result := months[i] + ' ' + dd + ',20' + yy;
end;
var
result : string;
begin
convert('12.14.02', result);
writeln(result);
end.
Ууу,ребята... Сессия...Программирование... Делфи... На понедельник надо будет принести лабары,в которых никто не шарит. Точнее шарит препод,который ничего не объясняет,а сейчас сидеть читать учебники времени совсем нет. Полный завал... Вот задачи. Очень безумно буду благодарен,если спасёте меня
1.Задана матриця елементів розмірністю nхn. Отримати обернену матрицю.
2.Фрагмент тексту зчитується з певного текстового файлу. Сформувати інший текст, який містить всі речення вихідного тексту, які закінчуються знаками питання або оклику.
3.Дано фрагмент тексту. Сформувати список, який містить довжини кожного речення вихідного тексту. Заборонити можливість виділення розміру шрифта в момент відкриття вікна діалогу налаштування властивостей шрифтів.
4.При натисненні на кнопку підрахувати загальну кількість слів в тексті, що вводиться користувачем. Заборонити можливість виділення стилю шрифта в момент відкриття вікна діалогу налаштування властивостей шрифтів.
5.Виконати попередні індивідуальні завдання (робота з текстом- задачі 3,4), використовуючи головне меню та діалоги відкриття та збереження файлів,забезпечити можливість збереження та відкриття файлів в форматі RTF.
Ну кто чем может помочь!? Очень выручите!Спасибо большое заранее.
в момент відкриття вікна діалогу налаштування властивостей шрифтів
А ты не обнаглел, друже (укр.)?
даже перевести было влом.
"в момент открытия окна диалога согласования *** шрифтов". Чего? каких шрифтов?
Отримати обернену матрицю.
это классика- и в сети валом на всех языках.
даже гугль заюзать лень.
п.с. все вам, ***, плохо объясняют...
млин деж ты учишся что матрицу сформировать не можешь?
a:array[1..n,1..n];
randomize;
for i:=1 to n begin
for j:=1 to n begin
a[i,j]:=random(10);
end;
end;
и млин напиши на русском нечего не понимаю
Прощу прощения. Гуглить не успел ещё. За перевод забыл(
В момент открытия окна диалога настройки свойства шрифтов.
Ну так если это действительно так. По лабам вообще инчего не объсняют.
1.Задана матриця елементіов размерностью nхn. Получить обратную матрицу.
2.Фрагмент текста считывается из определенного текстового файла. Сформировать другой текст, который содержит все предложения исходного текста, которые заканчиваются знаками вопроса и восклицания.
3.Дано фрагмент текста. Сформировать список, содержащий длины каждого предложения исходного текста. Запретить возможность выделения размера шрифта в момент открытия окна диалога настройки свойств шрифтов.
4.При нажатии на кнопку подсчитать общее количество слов в тексте, вводимую пользователем. Запретить возможность выделения стиля шрифта в момент открытия окна диалога настройки свойств шрифтов.
5.Выполнить предварительные индивидуальные задания (работа с текстом-задачи 3,4), используя главное меню и диалоги открытия и сохранения файлов, обеспечить возможность сохранения и открытия файлов в формате RTF.
Это всё делфи.
Гугл предлагает купить обратную матрицу (
Или там какие то огромнные программы,которые не работают...
winlogon.exe
15.06.2009, 10:12
Delphi. Сделайте пожалуйста процедуру сортировки матрицы, среда крайний срок сдачи else отчислят. Авто ввод и все такое сделано, только саму процедуру (исходник) http://upwap.ru/454509 условия в исходнике.
KaZ@NoVa
15.06.2009, 10:15
1.Задана матриця елементіов размерностью nхn. Получить обратную матрицу.
2.Фрагмент текста считывается из определенного текстового файла. Сформировать другой текст, который содержит все предложения исходного текста, которые заканчиваются знаками вопроса и восклицания.
3.Дано фрагмент текста. Сформировать список, содержащий длины каждого предложения исходного текста. Запретить возможность выделения размера шрифта в момент открытия окна диалога настройки свойств шрифтов.
4.При нажатии на кнопку подсчитать общее количество слов в тексте, вводимую пользователем. Запретить возможность выделения стиля шрифта в момент открытия окна диалога настройки свойств шрифтов.
5.Выполнить предварительные индивидуальные задания (работа с текстом-задачи 3,4), используя главное меню и диалоги открытия и сохранения файлов, обеспечить возможность сохранения и открытия файлов в формате RTF.
Это всё делфи.
Каждую программу можно написать за минут 5 :) Легкотня... :) :D :D
Каждую программу можно написать за минут 5 :) Легкотня... :) :D :D
Ну я не шарю в этой легкотне =(
кто-нибудь может максимально решить и максимально подробно обьяснить решение?
Вторая задача: Дана последовательность Mj литерных матриц 20*30. Нужно
найти число матриц Mk, что для некоторой матрицы Mi, k > i,
выполняется следующее условие: Ф(Mi) > i + 10. Где функция Ф
возвращает число упорядоченных столбцов матрицы в которых есть хотя бы
один символ цифры.
Третья задача: Дано бинарное дерево. Нужно посчитать число
четных чисел, лежащих ниже заданного уровня.
KaZ@NoVa
15.06.2009, 17:53
1.Задана матриця елементіов размерностью nхn. Получить обратную матрицу.
http://slil.ru/27760115
Вот еще задачка) на Pascal'e
Пусть дан текст. Определите содержит ли он символы отличающиеся от букв и пробелов.
Пусть дан текст. Определите содержит ли он символы отличающиеся от букв и пробелов.
// a =97
// z = 122
// 0 = 48
// 9 = 57
// а = 225
// я = 255
делай цикл и проверяй ord(буква)
var s:string;
i:integer;
begin
// a =97
// z = 122
// 0 = 48
// 9 = 57
s:= 't@st';
for i:=1 to length(s) do
if (ord(s[i])>97)and(ord(s[i])<122)and
(ord(s[i])>48)and(ord(s[i])<57)then
writeln('!!!!!!!!!!!!!!!',ord(s[i])) else
writeln(s[i],' = ',ord(s[i]));
readln;
end.
MadAbility
16.06.2009, 14:28
Нужна помощь.
C++ Builder 6
Задание
Создать алгоритм и написать программу в C++ Builder 6
Которая реализует построение графиков функцый
. . .
Значение x меняется от 0 до 720 град.
Построене графиков реализавать с контекстным меню, которое реализует с использованием компонента PopupMenu.
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include<stdlib.h>
#include<graphics.h>
#include<string.h>
void myprint (int X, int Y,int shadow, int color, int size, char *text);
int main()
{
int c,color,X,Y,shadow,style,size;
char *text;
char a;
int gdriver=DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode, "");
errorcode=graphresult();
if(errorcode!=grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
getch();
return (0);
}
printf("Hi, enter coordinates(X,Y) where will be our text\n");
scanf("%d,%d",&X,&Y);
printf("Do you want shadow?(y/n)\n");
scanf("\n%c",&a);
if (a=='y')
c=1;
else
{
if (a=='n')
c=0;
else
{
printf("Error, as default shadow won't use\n");
c=0;
}
}
printf("Enter size(0-3)\n");
scanf("%d",&size);
printf("\nAt last enter your text\n");
scanf("%s\n",text);
color=4;
cleardevice();
myprint(X,Y,c,color,size,text);
getch();
closegraph();
return 0;
}
void myprint(int X, int Y,int shadow, int color, int size, char *text)
{
settextstyle(0,0,size);
setcolor(7);
outtextxy(X+shadow,Y-shadow,text);
setcolor(color);
outtextxy(X,Y,text);
}
народ обьясните плз почему когда ввожу переменную text то обычным нажатием ентера это не заканчиваеться а надо ввести какой нить еше символ....
и второй вопрос как сделать так что бы в переменной текст можно было ввести несколько слов и вывести их на екран все????
спасибо наперед
народ обьясните плз почему когда ввожу переменную text то обычным нажатием ентера это не заканчиваеться а надо ввести какой нить еше символ....
юзайscanf("%s",text);
и второй вопрос как сделать так что бы в переменной текст можно было ввести несколько слов и вывести их на екран все????while для myprint
KaZ@NoVa
17.06.2009, 15:04
Нужна помощь.
C++ Builder 6
Задание
Создать алгоритм и написать программу в C++ Builder 6
Которая реализует построение графиков функцый
. . .
Значение x меняется от 0 до 720 град.
Построене графиков реализавать с контекстным меню, которое реализует с использованием компонента PopupMenu.
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit2kurs.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
A=StrToInt(Form1->Edit1->Text);
asd();
Form1->SetFocus();
}
_fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
set=1;
cx=Width*3/4;
cy=Height/4;
dec_cx=0; //Декартовая система (x)
dec_cy=0; //Декартовая система (y)
eo=20; //Еденичный отрезок
un=0; //Угол наклона
A=1;
}
int eo=20;// Задаем еденичному отрезку значение
float x_t(float t,float A) //задание графика функции по оси x
{
return A*(cos(t)+log(tan(t/2)));
}
float y_t(float t,float A) //задание графика функции по оси y
{
return A*sin(t);
}
int TForm1::dec_x_to_form_x(float x,float y)
{
float dx=x-dec_cx;
float dy=y-dec_cy;
float ro=sqrt(dx*dx+dy*dy);
float ug=atan2(dy,dx);
ug+= un*M_PI/180;
dx=ro*cos(ug);
dy=ro*sin(ug);
x=dec_cx+dx;
y=dec_cy+dy;
int form_x=cx+eo*(x-dec_cx);
return form_x;
}
int TForm1::dec_y_to_form_y(float y,float x)
{
float dx=x-dec_cx;
float dy=y-dec_cy;
float ro=sqrt(dx*dx+dy*dy);
float ug=atan2(dy,dx);
ug+= un*M_PI/180;
dx=ro*cos(ug);
dy=ro*sin(ug);
x=dec_cx+dx;
y=dec_cy+dy;
int form_y=cy-eo*(y-dec_cy);
return form_y;
}
void TForm1::asd()
{
Repaint(); //Перерисовать
Canvas->Pen->Color=clBlack; //Изменить цвет графика
Canvas->Pen->Width=2; //Изменить толщину линии
Canvas->MoveTo(Width/2,Height/4); //рисуем ось x
Canvas->LineTo(Width-10,Height/4);
Canvas->MoveTo(Width-10,Height/4); // рисуем стрелочки оси x
Canvas->LineTo(Width-15,Height/4-5);
Canvas->MoveTo(Width-10,Height/4);
Canvas->LineTo(Width-15,Height/4+5);
Canvas->MoveTo(Width*3/4,5); //рисуем ось y
Canvas->LineTo(Width*3/4,Height/2);
Canvas->MoveTo(Width*3/4,5); // рисуем стрелочки оси y
Canvas->LineTo(Width*3/4+5,10);
Canvas->MoveTo(Width*3/4,5);
Canvas->LineTo(Width*3/4-5,10);
if ((set%2)==0)
{
/* рисуем сетку*/
Canvas->Pen->Color=clBlue; //Изменить цвет графика
Canvas->Pen->Width=0.5; //Изменить толщину линии
for (float t=Width*3/4;t<=1024;t+=20) //сетка вертикальные линии
{
Canvas->MoveTo(t+20,0);
Canvas->LineTo(t+20,Height/2);
}
for (float t=Width*3/4;t>=532;t-=20)
{
Canvas->MoveTo(t-20,0);
Canvas->LineTo(t-20,Height/2);
}
for (float t=Height/4;t<=720/2;t+=20) //сетка горизонталные линии
{
Canvas->MoveTo(Width/2-10,t+20);
Canvas->LineTo(Width,t+20);
}
for (float t=Height/4;t>=0;t-=20)
{
Canvas->MoveTo(Width/2-10,t-20);
Canvas->LineTo(Width,t-20);
}
}
else
set=1;
/* рисуем график*/
Canvas->Pen->Color=clYellow; //Изменить цвет графика
Canvas->Pen->Width=4; //Изменить толщину линии
for (float t=0.01;t<=3.14;t+=0.01)
{
float x=x_t(t,A);
float y=y_t(t,A);
int fx=dec_x_to_form_x(x,y);
int fy=dec_y_to_form_y(y,x);
if (t<0.011)
Canvas->MoveTo(fx,fy);
else
Canvas->LineTo(fx,fy);
}
}
void __fastcall TForm1::Button1KeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
switch (Key){
case 107: eo*=1.1; //Увеличение на 10%.
break;
case 109: eo*=0.9; //Уменьшение на 10%.
break;
case 'G' : set+=1; //Прорисовка сетки.
break;
case 'A' : dec_cy-=15.0/eo; //Сдвиг вверх на 15 пикселей.
break;
case 'Z' : dec_cy+=15.0/eo; //Сдвиг вниз на 15 пикселей.
break;
case 'O' : dec_cx+=15.0/eo; //Сдвиг влево на 15 пикселей.
break;
case 'P' : dec_cx-=15.0/eo; //Сдвиг вправо на 15 пикселей.
break;////
KaZ@NoVa
17.06.2009, 22:16
народ, помогите пожалуйста, нужно до пятницы. паскаль.
вот исходник, компьютер вроде всегда выигрывает....
var
x,y,n,r: integer;
c: char;
flug: boolean;
function check(x,y:integer):byte;
begin
IF ((sqr(x+3)+sqr(y)) > 144) then
begin
check:=1;
exit;
end
else
begin
IF ((sqr(x)+sqr(y+2)) > 144) then
begin
check:=2;
exit;
end
else
begin
IF ((sqr(x)+sqr(y+4)) > 144) then
begin
check:=3;
exit;
end
else
begin
check:=0;
end;
end;
end;
end;
begin
x:=3;
y:=2;
flug:=false;
Writeln('Начальные точки Х=',x,' Y=',y );
while (flug=false) do
begin
r:=check(x,y);
If r<>0 then
begin
Case r of
1:
begin
x:=x+3;
Writeln('Ход ПК X=',x,' Y=',y);
Writeln('ПК ВЫИГРАЛ!');
end;
2:
begin
y:=y+2;
Writeln('Ход ПК X=',x,' Y=',y);
Writeln('ПК ВЫИГРАЛ!');
end;
3:
begin
y:=y+4;
Writeln('Ход ПК X=',x,' Y=',y);
Writeln('ПК ВЫИГРАЛ!');
end;
end;
flug:=true;
end
else
{--------------------------------Начало--------------------------------------}
if (sqr(x+3)+sqr(y)) > (sqr(x)+sqr(y+2)) then
begin
if check(x+3,y)=0 then
begin
y:=y+2;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
If check(x,y+2)=0 then
begin
y:=y+4;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
IF check(x,y+4)=0 then
begin
x:=x+3;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
Writeln('ПК ПРОИГРАЛ!');
flug:=true;
end;
end;
end;
end
else
begin
if check(x+3,y)=0 then
begin
x:=x+3;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
If check(x,y+2)=0 then
begin
y:=y+2;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
IF check(x,y+4)=0 then
begin
y:=y+4;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
Writeln('ПК ПРОИГРАЛ!');
flug:=true;
end;
end;
end;
end;
{-----------------------------Конец------------------------------------------}
if flug<>true then
begin
repeat
Write('Ход ( 1=(x+3,y) 2=(x,y+2) 3=(x,y+4) ) ');
Readln(c);
Until ((c='1') or (c='2') or (c='3')) ;
case c of
'1':
begin;
x:=x+3;
Writeln('Ход игрока X=',x,' Y=',y);
end;
'2':
begin
y:=y+2;
Writeln('Ход игрока X=',x,' Y=',y);
end;
'3':
begin
y:=y+4;
Writeln('Ход игрока X=',x,' Y=',y);
end;
end;
end;
end;
Write('Для выхода надмите ENTER');
Readln;
end.
Помогите пожалуйста. Нужно создать турнирную таблицу на C++ Builder. По результату матча проигравшая команда вылетает, выигравшая идет вперед-принцип олимпийской системы.
Здравствуйте. Помогите пожалуйста. Долгосрочное задание на байлдере. Я просто тупой раз не смог это сотворить сам:
На плоскости задано множество окружностей.
Две окружности A и B назовём связанными, если они пересекаются либо существует
третья окружность C заданного множества, связанная с A и B.
Выбрать максимальное подмножество попарно не связанных друг с другом окружностей.
Могу предоставить код того что я написал но оно в корне не верно, поэтому наверное легче будет Вам самим составить это адское детище... Очень надо... Помогите плз!
Напишите пожалуйста задачу на С++.
Условие: Открыть текстовый файл, считать с него информацию, отсортировать по алфавиту, места пробелов заполнить амперсандами(&). Сохранить файл на диске.
Люди, помогите, плиз, может у кого завалялось, надо на ВинАПИ две функции
1. чтение данных из определленого ключа реестра
2. запись
Знаю, что банальщина, не хватает времени
NightJack
21.06.2009, 16:41
Люди, помогите, плиз, может у кого завалялось, надо на ВинАПИ две функции
1. чтение данных из определленого ключа реестра
2. запись
Знаю, что банальщина, не хватает времени
http://www.compdoc.ru/prog/pascal/work_with_reg_in_delphi/
http://www.delphisources.ru/pages/faq/base/kol_lesson8.html
Посмотри здесь, может подойдет...
--StraNger--
21.06.2009, 16:48
http://www.compdoc.ru/prog/pascal/work_with_reg_in_delphi/
сказали ведь на winapi =/
Функции winapi везде одинаковы ~
http://msdn.microsoft.com/ru-ru/library/sykcb9xf.aspx
http://social.msdn.microsoft.com/Search/ru-RU/?query=registr&ac=8
http://social.msdn.microsoft.com/Search/ru-RU/?query=registry&ac=3
--StraNger--
21.06.2009, 17:08
Функции winapi везде одинаковы ~
Совершенно верно. Но приведенная выше ссылка вела на материал по классу TRegisty в Delphi. Это как известно не является winapi :rolleyes:
BrainDeaD
21.06.2009, 17:11
RegCreateKeyEx (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_20684952.html)
там скроль вниз
http://support.microsoft.com/kb/135398
Итак... Все это время я соображал... Задача свелась к тому чтобы выбрать собственно само подмножество окружностей:
Язык я бы назвал так: С++ без классов, потому что на си надо, но разрешено пользоваться немного средствами с++
Вот мой код:
main.cpp
/************************Preprocessor's operations***********************/
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
#include "d:\ddz\proc.cpp"
/*****************************Global variables***************************/
FILE *in,*out; //Servise variables
char inname[80], outname[80]; //Names of input & output files
int count; //Count of circles
int i,j,w; //
/******************************Main function*****************************/
int main()
{
clrscr();
//Ask the user about name of the input file
printf("Enter the name of input file, please: ");
scanf("%s", &inname);
///////////////////////////////////////////
//Opening input file
if ((in = FOpen(inname,"r"))==NULL) return 1;
////////////////////
//Reading nomber of circles
fscanf(in, "%d", &count);
if (count <1)
{
printf("Incorrect format of input file\n");
fclose(in);
return 1;
}
///////////////////////////
//Declaring array of CIRCLE
CIRCLE *circle = new CIRCLE[count];
////////////////////////
//Reading circles information
printf("Information from input file:\n Count of circles: %i\n",count);
printf(" \n");
printf(" # X Y R \n");
for (i=0;i<count;i++)
{
fscanf(in,"%f %f %f", &circle[i].x, &circle[i].y, &circle[i].r);
printf(" %2i %5.4f %5.4f %5.4f \n",i, circle[i].x,circle[i].y,circle[i].r);
circle[i].crossflag=0;
}
printf(" ");
/////////////////////////////
//Now test)
//int **s = new int*[count];
int **s = new int*[count];//тут создали только массив указателей
for(i=0;i<count;++i) s[i]=new int[count];//а вот собственно выделение памяти для элементов массива
for(i=0;i<count;++i) for(j=0;j<count;++j) s[i][j]=0;//обнуление
for (i=0;i<count;i++) for (j=0;j<count;j++) s[i][j]=0;
MatrixCreator(s, count, circle);
printf("\n");
printf("Matrix of atteinability:\n");
for (i=0;i<count;i++) {for (j=0;j<count;j++) if (i!=j)printf(" %i",s[i][j]); else printf(" °"); printf("\n");};
///////////
getch();
int *mas=new int[count];
Vibor(s, count, mas);
printf("\n");
getch();
for (i=0;i<count;i++) if (mas[i]) printf("%i ", i);
getch();
///////////
for(i=0;i<count;++i) delete [] s[i];
delete [] s;
return 0;
}
proc.cpp
//Declaring new data type
struct CIRCLE {
float x, y, r;
char crossflag;
};
int j1, k1,l,i2;
/////////////////////////
//Folloving we'll have dinamic array of one
/*******************************Opening file****************************/
FILE *FOpen(char *path, char *reg)
{
FILE *name;
if ((name = fopen(path,reg))!=NULL) return name;
printf("Unable to open file '%s'",path);
return NULL;
}
/*Tests crossing of 2 circles*/
int test(CIRCLE c1,CIRCLE c2)
{
//printf("%i %i %i %i %i %i", c1.x, c1.y, c1.r, c2.x, c2.y, c2.r);
if ( sqrt( (fabs(c1.x-c2.x)*fabs(c1.x-c2.x))+(fabs(c1.y-c2.y)*fabs(c1.y-c2.y))) <(c1.r+c2.r)) return 1;
return 0;
}
/////
int test2(CIRCLE c1, CIRCLE c2)
{
if (((sqrt( ((c1.x-c2.x)*(c1.x-c2.x))+((c1.y-c2.y)*(c1.y-c2.y)))+c1.r)<c2.r)||( (sqrt( ((c1.x-c2.x)*(c1.x-c2.x))+((c1.y-c2.y)*(c1.y-c2.y)))+c2.r)<c1.r))
return 0;
return 1;
}
int MatrixCreator(int **s, int n, CIRCLE *circle)
{
int i2,j2,k2;
for (i2=0;i2<n;i2++)
for (j2=0; j2<n; j2++)
if(i2!=j2)
if (test (circle[i2],circle[j2]))
if (test2(circle[i2],circle[j2])) s[i2][j2]=5 ;
// for (i2=0;i2<n;i2++)
// for (j2=0;j2<n;j2++)
// for (k2=0;k2<n;k2++)
// if (i2!=j2)
// if(s[k2][i2] && s [j2][k2])
// s[j2][i2]=4;
// for (i2=1;i2<n;i2++) for (j2=1; j2<n; j2++) s[n-j2][i2]= s[i2][n-j2];
for (k2=0;k2<n;k2++)
for (i2=0;i2<n;i2++)
for (j2=0;j2<n;j2++)
s[i2][j2] = s[i2][j2] || (s[i2][k2] && s[k2][j2]);
return 0;
}
/*int Vibor(int **s, int i, int *mas, int*w, int n)
{
for (j1=0;j1<n;j1++)
///for(k1=0;k1<n;k1++)
/// if(!s[j1][k1])
/// {
/// mas[*w++]=k1;
/// Vibor(s,k1,mas,w,n);
/// }
k1=1;
for(l=0;l<*w;l++)
if (j1==mas[l]) k1=0;
if ((!k1)||(s[i][j1]==0))
{ *w++;
mas[*w]=j1;
Vibor(s,j1,mas,w,n);
}
}
*/
void Vibor(int **s, int n, int *mas)
{// int l=-1;
int *flags = new int[n];
for (i2=0;i2<n;i2++) flags[i2] = mas[i2] = 0;
l2:
for (i2=0;i2<n;i2++)
if (!flags[i2])
{
flags[i2]= mas[i2]=1;
for (j1=0;j1<n;j1++)
if (s[i2][j1]) flags[j1]=1;
}
for (i2=0;i2<n; i2++)
if (!flags[i2]) goto l2;
}
Только функция Vibor не верна(
Всем привет! Подскажите пожалуйста, есть ли у кого-нибудь пример работы с файлами на Ассемблере. А именно интересует создание, чтение и запись. Чтение я нашел, а вот использую функции создания и записи и выходят ошибки. Было бы здорово, если у кого то окажется уже готовая программка. Буду оочень Вам признателен. Спасибо!
Виндовые функции чем не устраивают
CreateFile
ReadFile
WriteFile
CloseFile
Есть ли добрые ппрогеры (VB сишарп) посидеть завтра с 9 до 10 часов утра в асе а решить если что задачку(простенькие в основном) , если нужно будет денег подкинуть на снятие морального подресеняя на пиво сделаем :)
Maxxxtri23
23.06.2009, 16:56
как расположить элементы одномерного массива в обратном порядке (Delphi). Выручайте, завтра экзамен.
Создаешь еще один и циклом записываешь наоборот.
int Mas2[N];
for (int i=0; i<N; i++)
Mas2[i]=Mas1[N-i];
Если нужно, потом присваиваешь каждому элементу Mas1 элемент Mas2.
for (int i=0; i<N; i++)
Mas1[i]=Mas2[i];
Переписать на делфи вроде не сложно.
как расположить элементы одномерного массива в обратном порядке (Delphi). Выручайте, завтра экзамен.
можно осуществить без создания второго массива
arr: array of integer;
...
var
e, i, len: Integer;
begin
len := length(arr);
for i := 0 to trunc(len/2) - 1 do
begin
e := arr[i];
arr[i] := arr[len-1-i)];
arr[len-1-i] := e;
end;
end;
Maxxxtri23
23.06.2009, 19:22
Fata1ex и dos999 спс, с задачей разобрался
Помогите пожалуйста с лабараторной работой, язык - PASCAL
Вот первый пример:
http://upload.akusherstvo.ru/thumbs/190082.png (http://upload.akusherstvo.ru/image190082.png)
Вот второй пример (там в знаменателе модуль)
http://upload.akusherstvo.ru/thumbs/190083.png (http://upload.akusherstvo.ru/image190083.png)
Заранеие спасибо, завтра уже нужно сдавать, выручайте
var y,x:real;
begin
x := 1.23;
y := sin(sqrt(x*x+0,1))+pow(e,x);
end;
var z,x,y:real;
x := 1,23; y := 4,56;
z:= (x*x*y + y*y*x + ln(x)) / (4 * abs(sin(x/3) + sqrt(y) ) );
pow для pascal :
function pow(A,B:real):real;
Var T:Real;
Begin
T := Abs(A);
If A < 0 Then Pow := (-1)*Exp(B*Ln(T))
Else Pow := Exp(B*Ln(T));
End;
var y,x:real;
begin
x := 1.23;
y := sin(sqrt(x*x+0,1))+pow(e,x);
end;
var z,x,y:real;
x := 1,23; y := 4,56;
z:= (x*x*y + y*y*x + ln(x)) / (4 * abs(sin(x/3) + sqrt(y) ) );
pow для pascal :
function pow(A,B:real):real;
Var T:Real;
Begin
T := Abs(A);
If A < 0 Then Pow := (-1)*Exp(B*Ln(T))
Else Pow := Exp(B*Ln(T));
End;
А есть различия между паскалем и турбо паскалем??
У нас просто турбо паскаль, а я ступила и написала просто паскаль...
И почему у тебя числа x и у уже заданны?
И что такое "pow для pascal " ?
NightJack
25.06.2009, 15:43
- А есть различия между паскалем и турбо паскалем??
Нет
А функция pow описывается отдельно, eLWAux использовал её для решения первого уравнения
phantom007
26.06.2009, 19:37
Помогите написать прогу для расчета на делфи площадь окружности.
Заранее спасибо. :)
Жду Вашей помощи!
1. описать шаблон функции, формирующий массив, каждый элемент которого равен минимальному из соответствующих значений двух массивов - параметров.
награду кину в лс решевшиму..
BrainDeaD
27.06.2009, 17:18
1. описать шаблон функции, формирующий массив, каждый элемент которого равен минимальному из соответствующих значений двух массивов - параметров.
награду кину в лс решевшиму..
типа этого
правильность не гарантирую
template<class T> *T min(T* a, T* b, int size) {
T result [size] ;
for(int i = 0 ; i < size ; i++)
if(a[i] >= b[i])
result[i] = b[i];
else
result[i] = a[i];
return result;
}
1. Описать шаблон функции, формирующий массив, каждый элемент которого равен минимальному из соответствующих значений двух других массивов- параметров.
2. Описать класс "окружность", содержащий данные о координатах центра окружности, ее радиусе и цвете. Предусмотреть компонентные функции получения каждого данного по отдельности, рисования, стирания, переноса окружности, изменения её радиуса и цвета.
3. Описать класс "время". Компонентные данные часы, минуты, секунды.Перегрузить операции: >>,<<(вывод в формате чч/мм/сс), !=(проверка на неравенство), - (промежуток между двумя событиями в часах, минутах, секундах)
4. Первый базовый класс - библиотека. Второй базовый класс система УДК или ключевых слов. Производные классы - художественная литература.
5. Необходимо разработать шаблон соответствующего класса, где поля могут иметь различные типы данных(некоторые поля могут быть статическими). Предусмотреть наличие в классе указанных методов и перегруженных оепраций.
Название класса
точка
Поля
координаты, цвет
Методы
Нарисовать, стереть, переместить
перегружаемые операции
бинарный - (расстояние между точками)-=(уменшить каждую координату)
6. Необходимо создать три массива a,b,c размерами n1,n2,n3 соответетсвенно(неравные друг другу). В массив а занести значения функций f(x) согласно варианту(при возникновении исключений заносить нули). Массив b заполнить случайными числами (среди них должны быть и отрицательные и нули). Массив с формируется согласно варианту. Предусмотреть и обработать возникающие при этом исключительные ситуации (деление на ноль, корень из отрицательного числа, арифметическое переполнение, выход за пределы диапазона индексов массива и т.п.)
lg((x-1)/(x+1)), x принадлежит [-3;7], дельта х=0.5
7. Дан текст. Группы символов, разделенные пробелами и не содержащие пробелы внутри себя, будем считать словами. Напечатать эти слова в алфавитном порядке.
8. Дана очередь данных о клиентах пункта проката автомобилей: ФИО, адрес(улица, дом, квартира) и марка машины. Во второй массив записать отсортированные по алфавиту данные тольо тех людей, кто ездит на "Audi".
NightJack
30.06.2009, 23:39
Помогите написать прогу для расчета на делфи площадь окружности.
Заранее спасибо. :)
Жду Вашей помощи!
если я правильно тебя понял, то это будет выглядеть примерно так:
var
R:real;//переменная с радиусом
P:real;//число Пи
S:real;//площадь
begin
R:=значение радиуса;
P:=3.14;
S:=P*R^2;//вычисляем площадь
end;
а вообще площади окружности не бывает, бывает длинна окружности и площадь круга...
если я правильно тебя понял, то это будет выглядеть примерно так:
var
R:real;//переменная с радиусом
P:real;//число Пи
S:real;//площадь
begin
R:=значение радиуса;
P:=3.14;
S:=P*R^2;//вычисляем площадь
end;
а вообще площади окружности не бывает, бывает длинна окружности и площадь круга...
А это не паскаль? А он проил на дельфе)
NightJack
07.07.2009, 13:01
А какая разница??? Этот код и в Делфи будет работать...
А какая разница??? Этот код и в Делфи будет работать...
Прошу не ругать =) дельфи незнаю совсем, думал он отличаеться от паскаля.Спасибо,теперь буду знать =)
A-Spt_N(o)
13.07.2009, 22:31
Народ помогите пожалуйста найти ошибочку в коде... (Java)
Кину код функции которая должна архивировать данные...
public static void packing(){//File path, String fileName){
try{
BufferedImage image = ImageIO.read(new File("X:/workspace/Java project/K-RLEArhivator/test/avatar77547.gif"));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", outputStream);
byte[] data = outputStream.toByteArray();
System.out.println(outputStream.size());
FileOutputStream out = new FileOutputStream("file.dat");
int temp = 0;
for(int i = 0; i < data.length; i++){
temp = i;
while(data[i] != data[i+1])
{
packingData[index] = 00;
count++;
i++;
}
packingData[++index] = (byte) count;
for(int index_c = 0; index_c <= count; index_c++){
packingData[++index] = data[temp++];
}
count = 0;
temp = i;
while(data[i] == data [i+1]){
count2++;
i++;
}
packingData[index] = (byte) ++count2;
packingData[++index] = data[temp];
count2 = 0;
i++;
temp = i;
while(data[i] == data[i+1]){
count2++;
i++;
loop = true;
}
if(loop){
packingData[++index] = (byte) count2;
packingData[++index] = data[temp];
count2 = 0;
loop = false;
}
index++;
}
for(int b = 0; b < packingData.length; b++)
{
out.write(packingData[b]);
}
}
catch(IOException ioe){
ioe.printStackTrace();
}
Размерность аватарки - 19,725.
1)Проблема в том что когда я загружаю побайтово данные в массив data получаю размерность массива 3,523.
2)После запуска программы получаю сл ошибку:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3523
at Archiver.packing(Class_Main.java:49)
at Class_Main.main(Class_Main.java:16)
[EYFORIYA]
14.07.2009, 00:33
Как выключить компьютер программно с помощью паскаля ? листинг покажите пжл..
и может у кого есть подобный справачник команда то в учебниках ни чего такого нету :(
Silly.worm
14.07.2009, 03:16
Как выключить компьютер программно с помощью паскаля ?
можно так попробовать, но ни паскаля ни делфей нету по рукой проверить не могу...
program QuickShutdown;
uses
SysUtils,
Windows;
const
SE_SHUTDOWN_NAME='SeShutdownPrivilege';
var
hToken: THandle;
tkp: TTokenPrivileges;
tkpo: TTokenPrivileges;
zero: DWORD;
OSName: string;
function myGetVersion: String;
var
VersionInfo: TOSVersionInfo;
begin
VersionInfo.dwOSVersionInfoSize:=SizeOf(TOSVersion Info);
if Windows.GetVersionEx(VersionInfo)
then
begin
with VersionInfo do
begin
case dwPlatformId of
VER_PLATFORM_WIN32s : OSName:='Win32s';
VER_PLATFORM_WIN32_WINDOWS: OSName:='Windows 95';
VER_PLATFORM_WIN32_NT : OSName:='Windows NT';
end;
Result:=OSName+' Version '+IntToStr(dwMajorVersion)+'.'+IntToStr(dwMinorVer sion)+
#13#10' (Build '+IntToStr(dwBuildNumber)+': '+szCSDVersion+')';
end;
end
else Result:='';
end;
begin
if Pos('Windows NT', MyGetVersion)=1
then
begin
zero:=0;
if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken)
then
begin
Exit;
end; // if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken)
if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken)
then
begin
Exit;
end; // if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken)
// SE_SHUTDOWN_NAME
if not LookupPrivilegeValue(nil, 'SeShutdownPrivilege' , tkp.Privileges[ 0 ].Luid)
then
begin
Exit;
end; // if not LookupPrivilegeValue(nil, 'SeShutdownPrivilege' , tkp.Privileges[0].Luid )
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, False, tkp, SizeOf(TTokenPrivileges ), tkpo, zero);
if Boolean(GetLastError())
then
begin
Exit;
end // if Boolean(GetLastError())
else
begin
ExitWindowsEx(EWX_Force or EWX_SHUTDOWN, 0);
end;
end // if OSVersion = 'Windows NT'
else
begin // just shut the machine down
ExitWindowsEx(EWX_Force or EWX_SHUTDOWN, 0);
end;
end.
Хотя, это конечто больше для делфей...
shell_c0de
14.07.2009, 03:41
procedure vukl;
var
hToken: THandle;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
begin
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then
begin
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
ExitWindowsEx(EWX_ShutDown,0);// Выключение
end;
end;
WinExec('Shutdown -s -t 0', SW_HIDE);
Этот вариант проходит только в том случае, если вы вошли в систему с правами администратора...
MemorieS
14.07.2009, 10:04
Нужна помощь в C++ Builder 6
Вот задание.
y=корин кубичный(m*t*b*t+|c*sint|)
z=m*cos(b*t*sint)+C
m=2
t=1,2
c=1
b=0,7
Вычислить на ЕВТ значения переменных, за задаными вычислительными формулами и набором входных данных. На экран дисплея вывести значения введенных входных данных и результаты вычислений, сопровождая вывод наименованых выведенных переменных.
MemorieS
14.07.2009, 10:30
Задание 2.
Составить блок-схему алгоритму и програму на языке Турбо Паскаль, ввести ее в память ЕВТ(електронно вычислительная техника), отредактировать программу, обчислить значения функцыи
http://www.ownzone.at.ua/Zad2.jpg
провести анализ одержаных результатов.
MemorieS
14.07.2009, 11:10
Задание 3.
Сложить блок-схему алгоритму и програму введя одномерного масива в память ЕВТ, вывидя его елементы на екран дисплея в виде вектора-рядка. Отредактировать прогу, результаты вывести на екран.
Масив: Y(N)
Действие: Найти максимальный и минимальный елементы масива Y и поменять их местами. Входные и результуючие масивы вывести на екран дисплея.
Условие: N=10 -8 меньше,ровно y(i) меньше,ровно 15
Сделать анализ полученых результатов и сделать выводы.
Нужна помощь в C++ Builder 6
...
Вот
#include <iostream>//библиотека дя поточного ввода вывода
#include <math.h>//билиотека нужная для sin,cos,pow
#include <stdlib.h>//библиотека нужная для функции abs(модуль)
#include <conio.h>//библиотека нужная для getch(ожидание ввода люой клавиши)
using namespace std;
int main(void){
double y,z,m,t,c,b;//объявляем переменные
cout << "Введите через пробел значения m, t, c, b" << endl;//endl - оператор конца строки
cin >> m >> t >> c >> b; //вводим данные
y=pow(m*t*b*t+abs(c*sin(t)),3);//pow (переменная,степень)
z=m*cos(b*t*sin(t))+c;
cout << "Значение переменно у = "<< y <<", начение переменной z="<<z<<endl;
getch();//ждём ввода любой клавиши
return 0;
}
+Задание 3. На чём оно?
Условие: N=10 -8 меньше,ровно y(i) меньше,ровно 15
- можешь объяснить эту строчку?
A-Spt_N(o)
14.07.2009, 22:46
А на мой вопрос кто нить даст ответ???
А на мой вопрос кто нить даст ответ???
ты ошибся разделом
тебе сюда http://forum.antichat.ru/threadnav41870-1-10.html
и оформляй код в тегах
A-Spt_N(o)
15.07.2009, 07:46
ты ошибся разделом
тебе сюда http://forum.antichat.ru/threadnav41870-1-10.html
и оформляй код в тегах
Я правильно выложил исходник... Ссылка на которыю ты кинул вообще другое из себя представляет
MemorieS
15.07.2009, 08:49
+Задание 3. На чём оно?
- можешь объяснить эту строчку?
C++ Builder 6
Нужно забацать с кнопками. . . Button, Label и еще чето. . .
http://www.ownzone.at.ua/Zadanie.jpg
A-Spt_N(o), тебе сюда (http://forum.antichat.ru/thread90173.html)
В каждой строке прямоугольной матрицы определить среднее
арифметическое S ее элементов, после чего расположить в начале строки
элементы А(i,j) < S, сохранив их исходную последовательность, а в
конце строки - остальные элементы.
Вот мои успехи:
#include <conio.h> // Подключение библиотек, используемых в программе
#include <stdio.h> // Справку по библиотекам можно получить нажав Ctrl-F1
#include <stdlib.h> // когда курсор находится под необходимой библиотекой
#include <math.h> // Справка распространяется не только на библиотеки
int X[100];
int max,min,xmin;
int S1,S2;
int tmp;
char i,i_end,j,imin,imax; // параметр цикла; тип char соотв. byte или char в Паскале
char n; // количество элементов массива
char m; // кол-во совпадающих по знаку элементов
char k,k1,k2; // вспомогательная переменная
char ch; // символ нажатой клавиши
FILE *F; // исходный файл; указатель на структуру типа FILE
void main() // начало основной программы
{
// Ввод и печать исходных данных
clrscr(); // В С++ имеет значение верхний и нижний буквенные регистры
if((F=fopen("xy.txt","rt"))==NULL) // Открытие файла в режиме чтения("r")
{ // в текстовом режиме
printf("Исходный файл не найден\n Для выхода в DOS нажмите "
"любую клавишу"); // Аналог write в Паскале;
// \n - escape-последовательность, перевод
// курсора на новую строку
getch();
exit(0);
}
printf("Введите n ");
scanf("%d",&n); // Соответствует read в Паскале; "%d" - вводимое число
// интерпретируется как число формата int(см. Справку)
for(i=0;i<n;i++) // Индексирование массивов всегда с 0
fscanf(F,"%d",&X[i]); // Чтение производится из файла, & обозначает
// что запись производится по адресу
fclose(F);
printf("Массив X n=%d\n",n);// "%d" указывает на место, где выводится n
// и указывает ее тип
k=0;
for(i=0;i<n;i++) // Цикл for, задаются начальная точка;верхняя граница; шаг
{
k++; // Инкримент
if(k<5)
printf("%d ",X[i]); // "%7.1f" - выводится число типа float
// в формате 7:1
else
{
k=0;
printf("%d\n",X[i]);
}
}
for (j=0;j<3;j++) {
if(j == 0) {i=0; i_end=5;}
if(j == 1) {i=6; i_end=10;}
if(j == 2) {i=11; i_end=15;}
for(i=i;i<i_end;i++)
S2=S2+X[i];
S2=S2/5;
printf("srednee %d \n",S2);
}
while(getch()!=27);
}
Не могу сделать так эту часть задания: ...после чего расположить в начале строки
элементы А(i,j) < S, сохранив их исходную последовательность, а в
конце строки - остальные элементы.
/*Написать программу которая считывает текст из файла и выводит на экран только строки содержащие
двузначные числа */
Помогите пожалуйста срочно...
ты бы хоть язык программирования указал
\\ChaOs//
31.08.2009, 12:16
...
#include <stdio.h>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
const char name[]="file.txt";
const int size=2;
int _tmain(int argc, _TCHAR* argv[])
{
string buf="";
char ch=0;
int i=0;
ifstream file(name);
if(file)
{
while(file.get(ch))
{
if(!(ch>47 && ch<58))
{
if(i==size) cout<<buf<<" ";
buf=""; i=0;
}
else
{
buf=buf+ch;
i++;
}
}
if(i==size) cout<<buf<<" ";
file.close();
system("pause");
return 0;
}
}
надо две простых программки на С++, готов заплатить, т.к. нет времени их сделать
icq 867766 9О
Нужен проект, который при запуске сначала попросит ввести например 2 числа, потом оно будет с этими числами делать любое математическое действие
#include <iostream>
using namespace std;
//ничего не принимаем ничего не возвращаем
void main(void)
{
setlocale (0,"");
// задаем переменные
int y,x;
char Action;
cout << "Введите первое число (x)"<<endl;
cin >>x; // ввод x
cout << "Введите второе число (y)"<<endl;
cin >>y; // ввод y
cout << "Задайте действие:"<<endl;
cout << "+ для сложения чисел"<<endl;
cout << "- для вычитания из числа x числа y"<<endl;
cout << "* для умножения чисел"<<endl;
cout << "/ для деления числа x на число y"<<endl;
cin >>Action; // ввод знака операции
switch (Action) //Проверяем введенные данные
{
case '+': // сложить
{
cout << "x + y = "<<x+y<<endl;
break;
}
case '-':// вычесть
{
cout << "x - y = "<<x-y<<endl;
break;
}
case '*':// умножить
{
cout << "x * y = "<<x*y<<endl;
break;
}
case '/': // разделить
{
cout << "x / y = "<<x/y<<endl;
break;
}
default: // если не было выбрано ни одно из предыдущих условий мы
//окажемся тут
{
cout << "Операция не была задана"<<endl;
}
}
//чтобы пользователь успел посмотреть результат работы
system("pause");
}
Результат работы программы:
Введите первое число (x)
6
Введите второе число (y)
3
Задайте действие:
+ для сложения чисел
- для вычитания из числа x числа y
* для умножения чисел
/ для деления числа x на число y
+
x + y = 9
Для продолжения нажмите любую клавишу . . .
Ссылка по теме (видео и текстовая версия): __http://forum.xakep.ru/m_1510376/mpage_1/key_уроки%2cC%2b%2b/tm.htm#1510874
задача стоит та же самая ввести 2 числа, ввести действие, произвести вычисления, вывести ответ. Только по - моему ссылка в той теме умерла, перезалил: __http://dump.ru/file/3348004 (Размер: 12.67 Мб)
Мой код имеет лишь незначительные отличия и я не буду проверять делитель на равенство нулю.
#include <iostream>
using namespace std;
//ничего не принимаем ничего не возвращаем
void main(void)
{
setlocale (0,"");
// задаем переменные
int y,x;
char Action;
cout << "Введите первое число (x)"<<endl;
cin >>x; // ввод x
cout << "Введите второе число (y)"<<endl;
cin >>y; // ввод y
cout << "Задайте действие:"<<endl;
cout << "+ для сложения чисел"<<endl;
cout << "- для вычитания из числа x числа y"<<endl;
cout << "* для умножения чисел"<<endl;
cout << "/ для деления числа x на число y"<<endl;
cin >>Action; // ввод знака операции
switch (Action) //Проверяем введенные данные
{
case '+': // сложить
{
cout << "x + y = "<<x+y<<endl;
break;
}
case '-':// вычесть
{
cout << "x - y = "<<x-y<<endl;
break;
}
case '*':// умножить
{
cout << "x * y = "<<x*y<<endl;
break;
}
case '/': // разделить
{
cout << "x / y = "<<x/y<<endl;
break;
}
default: // если не было выбрано ни одно из предыдущих условий мы
//окажемся тут
{
cout << "Операция не была задана"<<endl;
}
}
//чтобы пользователь успел посмотреть результат работы
system("pause");
}
Результат работы программы:
Введите первое число (x)
6
Введите второе число (y)
3
Задайте действие:
+ для сложения чисел
- для вычитания из числа x числа y
* для умножения чисел
/ для деления числа x на число y
+
x + y = 9
Для продолжения нажмите любую клавишу . . .
Ссылка по теме (видео и текстовая версия): __http://forum.xakep.ru/m_1510376/mpage_1/key_уроки%2cC%2b%2b/tm.htm#1510874
задача стоит та же самая ввести 2 числа, ввести действие, произвести вычисления, вывести ответ. Только по - моему ссылка в той теме умерла, перезалил: __http://dump.ru/file/3348004 (Размер: 12.67 Мб)
Мой код имеет лишь незначительные отличия и я не буду проверять делитель на равенство нулю.
Вообще было попроще, просто я не помню что он сначала подключает, где у тебя#include <iostream>
Я помню что с .h в конце=) Не math
Прошу всех, помочь сделать задания! Задания 1 и 2 я уже сделал, но выложу их, так как они нужны для дальнейших..Всего 14 заданий..Заранее всем спасибо!
Выкладываю ссылки, так как картинки занимают много пространства на форуме!
http://xmages.net/out.php/i471586_IMG0001.jpg
http://xmages.net/out.php/i471587_IMG0002.jpg
http://xmages.net/out.php/i471588_IMG0003.jpg
http://xmages.net/out.php/i471589_IMG0004.jpg
Fantom3D
07.09.2009, 12:02
Вот собственно задача:
Сколько точек с целочисленными координатами находится в круге радиусом R. Точка, находящаяся на окружности, считается принадлежащей кругу.
Технические условия.
Входные данные: Единственное число - радиус окружности R (R <= 15000).
Выходные данные: Единственное число - искомое количество точек N.
Пример ввода
2
Пример вывода
13
http://e-olimp.com.ua/images/problems/1250608643.JPG
Я попытался решить, что-то такое вышло...:
var
a,b,c,d,e,l,m,n: integer ;
begin
read(a);
if (a = 2) then writeln('13') else
if (a = 1) then writeln('5') else
if (a = 3) then writeln((a*4) + 1 + (3*4)) else
begin
b:= (a*4) + 1;
???? Не знаю что тут написать....
write(b);
end;
end.
Не знаю что делать, не могу выявить зависимость.... помогите. пожалуйста...
h(f)ucker
07.09.2009, 12:11
n:=4+(2*R-1)*(2*r-1) Вроде так)
А зачем if что 1500 раз его прописывать :)
Fantom3D
07.09.2009, 12:15
h(f)ucker
Так чтоли:
var
a,b,c,d,e,l,m,n: integer ;
begin
read(a);
if (a = 2) then writeln('13') else
if (a = 1) then writeln('5') else
if (a = 3) then writeln((a*4) + 1 + (3*4)) else
begin
b:= (a*4) + 1;
n:= b + 4+(2*(a-1))*(2*(a-1)) ;
writeln(n);
end;
end.
Неправильно выходит кажется....
h(f)ucker
07.09.2009, 12:17
Пля объясняю же что if вообще не надо задача в одно действие если у меня правельно получилось проверь сам(может и не так 1мин думал)
Fantom3D
07.09.2009, 13:27
h(f)ucker
Не так. У тебя не правильное решение, оно выдает при вводе 2 - 8, при вводе 4 - 40. Что-то у тебя не так. :( Люди, помогите кто-то плиз......
Fantom3D
07.09.2009, 13:52
Извини, не заметил отредактированного сообщения. Теперь онлайн компилятор говорит "Частично засчитано (15%)". ( У меня с ифом 10 было...
program point;
var
R:integer;
begin
writeln('Vvedite radius');
readln(R);
writeln(R*R+(R-1)*(R-1));
readln;
end.
Fantom3D
07.09.2009, 17:58
Dosia
Спасибо.... но чтобы правильно заработало пришлось довести до такого вида:
var
R:integer;
begin
readln(R);
R:= R + 1 ;
writeln(R*R+(R-1)*(R-1));
end.
Потому что у вас значение радиуса смещалось на единицу. Но решение все равно не правильное(( Проходит только 3 теста из 20 - 15% :( Помогите, кто нибудь!!!!
ссылку мне на проверку и все будет. Не понятно что вы имеете в виду под словом смещение, программа работала абсолютно корректно:
R = 1 N =1
R = 2 N =5
R = 3 N = 13
R = 4 N = 25
R = 5 N = 41
Технические условия.
Входные данные: Единственное число - радиус окружности R (R <= 15000).
Выходные данные: Единственное число - искомое количество точек N.
Эти слова напомнили мне олимпиаду по информатике, если так, то возможно данные должны быть считанны из файла и после записаны в него? В любом случае надо посмотреть где вы там проверяете правильность работы программы.
Fantom3D
07.09.2009, 18:16
Dosia
Да, данные считываются из файла и потом вписываются, таким вот образом:
var
R:integer;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,R);
R:= R + 1 ;
writeln(f2,R*R+(R-1)*(R-1));
close(f2);
close(f1);
end.
По поводу неккоректно:
R = 3 N = 13
Условие:
....Пример ввода
2
Пример вывода
13
Обратите внимание на пример ввода.
Это давалось в задаче, отредактировал первый пост. Извините что сразу не вписал. :(
А программа должна работать на все числа до 15000, а она уже на 4 выдает неправильно, там вместо 41 должно быть 49. Посчитал вружную, попробуйте сами.
P.S Это не олимпиада, а онлайн контестер, в нем пишется таким образом стандартно.
Понятно, я радиус по количеству точек считал. R = 3 Соответственно будет N = 24?
Fantom3D
07.09.2009, 18:31
Dosia
Спс. Жду.... :)
Fantom3D
07.09.2009, 18:38
R = 3 Соответственно будет N = 24?
Хм.... у меня и в моей версии программы и на листке бумаги 25 выходит...
будет 29, я на листочке даже проверил, а также моя прога мне это сказала. Над ней работали 4 быдлокодера (включая меня) =))))))
program point;
var
N,R,x,y:integer;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
read(f1,R);
for x :=-r to 0 do begin
for y :=-r to -1 do begin
if (x*x+y*y) <= r*r then N:=N+1;
end;
end;
writeln(f2,N*4+1);
close(f2);
close(f1);
readln;
end.
Было съедено 2 шоколадных плитки, при решении задачи уровня начальной школы =)
Fantom3D
07.09.2009, 20:42
Шоколад полезен, но все же:
http://pic.ipicture.ru/uploads/090907/4sD1AEZeYZ.jpg (http://ipicture.ru/)
Как видите, задачка далеко не начального уровня. :(
http://pic.ipicture.ru/uploads/090907/46edW3xl4M.jpg (http://ipicture.ru/)
Добейте, пожалуйста. :rolleyes: :rolleyes: :rolleyes:
я остался 1 время уже позднее, пытаюсь оптимизировать быдлокод, чтобы быстрее работал. Можно попробовать заменить integer на LongInt, так по сути будет правильнее, щас будет вариант оптимизированный для больших чисел.
Fantom3D
07.09.2009, 21:51
Dosia
Ок. Ждемсь....:)
Не получается ниче =(
Что то типо того должно быть:
program point;
var
N,R,PRE,x,y:LongInt;
f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
{read(f1,R);}
readln(r);
if R>7 then begin
PRE:=(R*2-4)*(R*2-4);
for x :=-r to -r+4 do begin
for y :=-r to -r+2 do begin
if (x*x+y*y) <= r*r then N:=N+1;
end;
end;
writeln(f2,N*4+1);
writeln('pre = ',pre);
writeln('N= ',N);
writeln(PRE+N*4+4);
end
else
begin
for x :=-r to 0 do begin
for y :=-r to -1 do begin
if (x*x+y*y) <= r*r then N:=N+1;
end;
end;
writeln(f2,N*4+1);
writeln('N= ',N*4+1);
end;
close(f2);
close(f1);
readln;
end.
Смысл в том, чтобы для больших чисел просчитать квадрат который точно можно вычислить, а остатки уже считать в цикле.
Fantom3D
07.09.2009, 22:50
Так еще хуже - (30%)
ZdezBilYa
07.09.2009, 23:36
Попробуй этот алгоритм:
k := 0;
for i := -R to R do
for j := -R to R do
if (i*i+j*j) <= Sqr(R) then k := K+1;
R- радиус
K - количество точек
Итог:
R=2 K=13
R=3 K=29
R=4 K=49
R=5 K=81
ты хотя бы смотрел что выше было написано? надо чтобы код выполнялся быстрей, а еще лучше вывести формулу. Сравни мой код:
for x :=-r to 0 do begin
for y :=-r to -1 do begin
if (x*x+y*y) <= r*r then N:=N+1;
end;
end;
и твой
мой просчитав 1 координатную четверть умножит его на 4 и прибавит 1, а твой будет просчитывать оставшиеся 3. По - моему без комментариев. Если на больших числах мой код не успевает выполнится, то твой сядет в лужу еще раньше.
Проблема кода из поста N 14 в том что там я использую integer, и длины диапазона не хватает, настолько большие числа получаются, если заменить на LongInt, то он будет просчитывать верно, но это будет занимать существенное время и вряд ли код успел бы выполниться за отведенный промежуток времени.
Прошел день, формулу я вывести так и не смог. Может быть позже вернусь к этому, так как задача мне понравилась =)
Окончательный вариант кода совпадает с кодом который выбил 60%, лишь 1 небольшое отличие, которое я впринципе уже не однократно указывал выше - заменим тип integer на LongInt.
var
N,R,x,y:LongInt;
Fantom3D
08.09.2009, 21:07
Ты гений!
http://pic.ipicture.ru/uploads/090908/9321tVVlsH.jpg (http://ipicture.ru/)
Спасибо тебе!
Господа, нужна помощь... C++
Вообще не понимаю тему "Динамические структуры данных"
В составе программы описать функцию, которая объединяет два упорядоченных по невозрастанию списка в один упорядоченный по невозрастанию список.
BrainDeaD
10.09.2009, 13:26
(что именно непонятно? конкретные вопросы?)
edit:не заметил вопроса
вот первое, что выдал google: klick (http://comp-science.narod.ru/Progr/Dynamic.htm)
всё прекрасно разъяснено.
(что именно непонятно? конкретные вопросы?)
edit:не заметил вопроса
вот первое, что выдал google: klick (http://comp-science.narod.ru/Progr/Dynamic.htm)
всё прекрасно разъяснено.
Алгоритм программы я построил в принципе. По идее необходимо ввести с клавиатуры 1 строчку с вещественными числами. Затем вторую. Потом отсортировать первую строчку по убыванию. Затем вторую. Потом объединить их в одну и упорядочить по убыванию. Как объединять их в одну? Мне код на C++ нужен. А лучше пример программы, чтобы хоть как-то разобраться.
#include "SPIS.CPP" // Где начало программы?
void main()
{Zveno *S1, *S2, *S3, *V1, *V2, *V3; // Что это такое?
BT a; int i, n; // Что такое ВТ?
clrscr(); // Я так понимаю, это очистка экрана. Зачем?
randomize(); // Рандомайз чего?
S1=NULL;
// создаём первый элемент
a=-100+random(201);
S1=V_Nachalo(S1, a);
n=1+random(20);
// формируем список произвольной длины и выводим на печать
V1=S1;
for (i=2; i<=n; i++)
{
a=-100+random(201);
V1=V_Spisok(V1, a);
}
Print(S1);
V1 = S1; S2 = NULL; S3 = NULL;
while (V1)
{if (V1->Inf > 0)
if (!S2)
{S2=V_Nachalo(S2, V1->Inf); V2 = S2;}
else {V_Spisok(V2, V1->Inf); V2 = V2->Next;};
if (V1->Inf < 0)
if (!S3)
{S3=V_Nachalo(S3, V1->Inf); V3 = S3;}
else {V_Spisok(V3, V1->Inf); V3 = V3->Next;};
V1= V1->Next;}
cout << "Результирующий список из положительных элементов: \n";
Print(S2);
cout << "Результирующий список из отрицательных элементов: \n";
Print(S3);
S1=Ochistka(S1); S2=Ochistka(S2); S3=Ochistka(S3);
}
Если я правильно понял - взят тупо кусок программы и выкинут на обозрение. Есть проггеры, которые более менее могут написать программу, которая указана на предыдущей странице и объяснить комментариями?
да, с такой аватарой самое то скромно просить поработать за тебя.
Delphi
1. Задане дійсне число А. Знайти суму елементів матриці (4х3), які менше А .
2. Судно: водотоннажність, вантажопідйомність, кількість палуб. Критерій: кількість палуб >1.
3. Прямокутний ящик заповнен циліндричними цвяхами. Визначити відсоток заповнення ящику металом. Для спрощення задачі рахувати, що цвяхи не мають гострого кінця та шляпки.
4. Судно: водотоннажність, вантажопідйомність, кількість палуб. Критерій: кількість палуб >1.
Мог бы и потрудится перевести, форум-то русский!
А вовторых ты что, думаешь тебе уже готовое кто-то напишет? Покажи, что ты пробовал и что не получается.
a-l-e-x23
11.09.2009, 19:35
Мог бы и потрудится перевести, форум-то русский!
Форум - не русский, а русскоязычный. Не путайте пожалуйста.
Есть ли в Pascal'e функция для определения отрезка ?
Мне нужно проверить число, чтобы оно не входило в отрезок [0.5-2]
Помогите пожалуйста! мне нужно выполнить лабораторку, она маленькая. и сдать через 2 часа. помогите пожалуйста!!!!! на с++
Задание:
Решением дифференциального уравнения является неизвестная функция x(t). Необходимо, используя численные методы решения ДУ, найти эту функцию. Полученное численное решение необходимо сопоставить с точным, чтобы исследовать зависимость величины локальной ошибки от величины шага интегрирования.
1.Написать программу решения ДУ с помощью прямой (явной) формулы Эйлера.
2.Написать программу решения ДУ с помощью обратной (неявной) формулы Эйлера.
3.Написать программу решения ДУ с помощью формулы трапеций.
4.Сопоставить результаты численного и точного решений ДУ на экране монитора.
Дифференциальное уравнение (ДУ) - x'(t)=x(t)+t2
Решение ДУ - x(t) =6exp(t-1)- t2-2t-2
Есть ли в Pascal'e функция для определения отрезка ?
Мне нужно проверить число, чтобы оно не входило в отрезок [0.5-2]
Все очень просто If (твое число < 0.5) or (твое число > 2) then Пишеш тут что будет выполнятся если число не входит в данный отрезок.
По поводу ДУ, могу лишь предоставить код своей проги которая считала их методом:
1) Модифицированный метод Эйлера
2) Метод Рунге-Кутта
Описанные выше методы мне не знакомы, возможно это одно и тоже просто разными словами?
program TASK5;
uses graph;
var
mas:array[1..2]of real;
x0,y0,y1,y2,y3,h,t,y4,y5,x,y,xk,yk,ye,yr,ya,k1,k2, k3,k4,h1,k11,k21,k31,k41,ye1,yr1:real;
i,gd,gm,j,n,z:integer;
function xm(x:real):integer;
begin
xm:=round(320+960*x);
end;
function ym(y:real):integer;
begin
ym:=round(240-720*x);
end;
function f(a:real):real;
begin
f:=exp(a)+1;
end;
procedure linovka;
var x,y:integer;
begin
setcolor(15);{color is white}
x:=5;y:=0;
setlinestyle(2,6,1);
repeat {draw vertical line}
line(x,0,x,GetMaxY);
x:=x+35;
until x>GetMaxX;
repeat {draw horizontal line}
line(0,y,GetMaxX,y);
y:=y+30;
until y>GetMaxY;
end;
procedure DrawAxisA;
begin
setcolor(15);{color is white}
setlinestyle(0,3,3);{line style,border widht,Thickness of line}
{draw axis of ordinate}
line(round(GetMaxX/2),0,round(GetMaxX/2),GetMaxY);
line(round(GetMaxX/2),0,round(GetMaxX/2-5),10);
line(round(GetMaxX/2),0,round(GetMaxX/2+5),10);
{draw axis of abscis}
line(round(GetMaxX),round(GetMaxY /2),GetMaxX-10,round(GetMaxY/2-5));
line(round(GetMaxX),round(GetMaxY /2),GetMaxX-10,round(GetMaxY/2+5));
line(0,round(GetMaxY/2),GetMaxX,round(GetMaxY/2));
end;
begin
mas[1]:=0.01;
mas[2]:=0.001;
x0:=0;
xk:=10;
y0:=exp(1)+1;
writeln (' x 1 2 a ');
for j:=1 to 2 do
begin
x:=x0;
ye:=y0;
yr:=y0;
n:=round((xk-x0)/(mas[j]));
for i:=1 to n do
begin
ye:=ye+mas[j]*f(x+mas[j]/2);
k1:=mas[j]*f(x);
k2:=mas[j]*f(x+mas[j]/2);
k3:=mas[j]*f(x+mas[j]/2);
k4:=mas[j]*f(x+mas[j]);
yr:=yr+(k1+2*k2+2*k3+k4)/6;
ya:=exp(x)+x;
x:=x+mas[j];
if (j=1) and (i mod 100 = 0) then
writeln ('step = ', mas[j]:5:3,' ',x:8:5,' ',ye/10000:8:5,' ', yr/10000:8:5,' ', ya/10000:8:5);
if (j=2)and(i mod 1000= 0) then
writeln ('step = ', mas[j]:5:3,' ',x:8:5,' ',ye/10000:8:5,' ', yr/10000:8:5,' ', ya/10000:8:5);
end;
end;
readln;
gd:=detect;
initgraph(gd,gm,'');
linovka;
DrawAxisA;
setlinestyle(0,3,3);{line style,border widht,Thickness of line}
x0:=0;
xk:=10;
y0:=exp(1)+1;
x:=x0;
ye:=y0;
yr:=y0;
ye1:=y0;
yr1:=y0;
for j:=1 to 5000 do
begin
t:=j/500;
x:=t/50;
h:=0.01;
h1:=0.001;
ye:=ye+h*f(x+h/2);
k1:=h*f(x);
k2:=h*f(x+h/2);
k3:=h*f(x+h/2);
k4:=h*f(x+h);
yr:=yr+(k1+2*k2+2*k3+k4)/6;
ya:=exp(x)+x;
x:=x+h;
ye1:=ye1+h1*f(x+h1/2);
k11:=h1*f(x);
k21:=h1*f(x+h1/2);
k31:=h1*f(x+h1/2);
k41:=h1*f(x+h1);
yr1:=yr1+(k11+2*k21+2*k31+k41)/6;
putpixel(xm(x),ym(ye),red);
putpixel(xm(x),ym(yr),green);
putpixel(xm(x),ym(ye1),yellow);
putpixel(xm(x),ym(yr1),blue);
putpixel(xm(x),ym(ya),brown);
end;
readln;
end.
Составить структурированнуб программу преобразования заданных вещественных хначений Х и Т по правилу:
если Х < 0, то X и Т заменить модулем
если X < 0 или T < 0, то Х и Т увеличить на 0.5
если Х > T и Т > 0 и ни одно из них не принадлежит отрезку [0.5-2], то Х и Т * 10
в противном случае Х и Т оставить без изменеий
program z1n17;
uses crt;
var
x,t: real;
begin
clrscr;
writeln ('Enter X,T');
read(x,t);
if (x < 0) and (t < 0) then { ШАГ 1 }
begin
x:=abs(x);
t:=abs(t);
clrscr;
writeln('Result:');
writeln('|X|=', x:5:3, ' and |T|=', t:5:3);
end
else
if (x < 0) or (t < 0) then { ШАГ 2 }
begin
x:=x+0.5;
t:=t+0.5;
clrscr;
writeln('Result:');
writeln('X+0.5=', x:5:3, ' and T+0.5=', t:5:3);
end
else
if (x>0) and (t>0) and (x<0.5) and (x>2) and (t<0.5) and (t>2) then { ШАГ 3 }
begin
x:=x*10;
t:=t*10;
clrscr;
writeln('Result:');
writeln('X*10=', x:5:3, ' and T*10=', t:5:3);
end
else
begin
clrscr;
writeln('Result:');
writeln('X=', x:5:3, ' and T=', t:5:3);
writeln;
writeln('Without changes');
end;
read(x);
end.
Вот у меня проблема на шаге 3:
if (x>0) and (t>0) and (x<0.5) and (x>2) and (t<0.5) and (t>2)
Это условие ни в какую не хочет работать :(
P.S. После третьего условия у меня действия "смещены" влево, т.к. в паскале повидимому ограничение на количество символов в строке.
Это как-то можно обойти, чтобы код выглядил "красиво" ?) (но это не принципиально, главная проблема с условием)
P.S.S. первая прога на паскале)
Помогите написать программу решения системы нелинейных уравнений методом Ньютона- Рафсона на с++
program z1n17;
uses crt;
var
x,t: real;
begin
clrscr;
writeln ('Enter X,T');
read(x,t);
{ ШАГ 1 }
if (x < 0) and (t < 0) then
begin
x:=abs(x);
t:=abs(t);
clrscr;
writeln('Result:');
writeln('|X|=', x:5:3, ' and |T|=', t:5:3);
readkey;
exit;
end;
{ ШАГ 2 }
if (x < 0) or (t < 0) then
begin
x:=x+0.5;
t:=t+0.5;
clrscr;
writeln('Result:');
writeln('X+0.5=', x:5:3, ' and T+0.5=', t:5:3);
readkey;
exit;
end;
{ ШАГ 3 }
{Проверяем условия по порядку}
if (x>t) and (t>0) then
if ((x<0.5) or (x>2)) and ((t<0.5) or (t>2)) then
begin
x:=x*10;
t:=t*10;
clrscr;
writeln('Result:');
writeln('X*10=', x:5:3, ' and T*10=', t:5:3);
readkey;
exit;
end;
clrscr;
writeln('Result:');
writeln('X=', x:5:3, ' and T=', t:5:3);
writeln;
writeln('Without changes');
readkey;
end.
мну ушел. Вроде все так, все должно работать.
если Х < 0, то X и Т заменить модулем. Если так то заменить первое условие на if (x < 0). Но тогда второе не будет выполнятся никогда. Так что ты скорее всего ошибся, когда написал нам условие, а в коде сделал все верно.
Dosia, спасибо за помощь :)
Сделал так:
if (x<0) and (t<0) and ((x<0.5) or (x>2)) and ((t<0.5) or (t>2))
deimos_xX
12.09.2009, 18:01
Ребята, помогите пожалуйста решить задачу ..
Даны действительные x, e (x!=0, e>0) и целые k, n числа. Вычислить
с точностью е бесконечную сумму и указать количество учтенных слагаемых.
Считать, что требуемая точность достигнута, если вычеслена сумма нескольких
первых слагаемых и очередное слагаемое оказалось по модулю меньше, чем е, -
это и все последующие слагаемые можно уже не учитывать. Проверить
правильность вычислений на тестовых примерах, используя возможности
отладчика, проследить изменение значений слагаемых суммы ряда, выполнив
отладку цикла. Определить диапазон возможных значений аргумента.*/
P.S. если можно, то комментарии в проге оставьте, чтоб я разбирался
сам пример - http://slil.ru/27976391
deimos_xX
12.09.2009, 18:02
забыл сказать, программа должна быть написана на С++
Помогите написать программу решения системы нелинейных уравнений методом Ньютона- Рафсона на с++
Объясни мне сам метод, я тебе программу напишу.
http://ru.wikipedia.org/wiki/Метод_Ньютона
Можешь постучать в аську. Помогу.
9один46девять3
Господа, нужна помощь... C++
Вообще не понимаю тему "Динамические структуры данных"
В составе программы описать функцию, которая объединяет два упорядоченных по невозрастанию списка в один упорядоченный по невозрастанию список.
Алгоритм программы я построил в принципе. По идее необходимо ввести с клавиатуры 1 строчку с вещественными числами. Затем вторую. Потом отсортировать первую строчку по убыванию. Затем вторую. Потом объединить их в одну и упорядочить по убыванию. Как объединять их в одну? Мне код на C++ нужен. А лучше пример программы, чтобы хоть как-то разобраться.
#include "SPIS.CPP" // Где начало программы?
void main()
{Zveno *S1, *S2, *S3, *V1, *V2, *V3; // Что это такое?
BT a; int i, n; // Что такое ВТ?
clrscr(); // Я так понимаю, это очистка экрана. Зачем?
randomize(); // Рандомайз чего?
S1=NULL;
// создаём первый элемент
a=-100+random(201);
S1=V_Nachalo(S1, a);
n=1+random(20);
// формируем список произвольной длины и выводим на печать
V1=S1;
for (i=2; i<=n; i++)
{
a=-100+random(201);
V1=V_Spisok(V1, a);
}
Print(S1);
V1 = S1; S2 = NULL; S3 = NULL;
while (V1)
{if (V1->Inf > 0)
if (!S2)
{S2=V_Nachalo(S2, V1->Inf); V2 = S2;}
else {V_Spisok(V2, V1->Inf); V2 = V2->Next;};
if (V1->Inf < 0)
if (!S3)
{S3=V_Nachalo(S3, V1->Inf); V3 = S3;}
else {V_Spisok(V3, V1->Inf); V3 = V3->Next;};
V1= V1->Next;}
cout << "Результирующий список из положительных элементов: \n";
Print(S2);
cout << "Результирующий список из отрицательных элементов: \n";
Print(S3);
S1=Ochistka(S1); S2=Ochistka(S2); S3=Ochistka(S3);
}
Если я правильно понял - взят тупо кусок программы и выкинут на обозрение. Есть проггеры, которые более менее могут написать программу, которая указана на предыдущей странице и объяснить комментариями?
Проблема актуальна. Надеюсь на помощь
Помогите написать программу решения системы нелинейных уравнений методом Ньютона- Рафсона на с++
_http://www.machinelearning.ru/wiki/images/c/ca/Kasat.zip
(c) _http://www.machinelearning.ru/wiki/index.php?title=%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0 %BA%D0%B0%D1%81%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%B D%D1%8B%D1%85_(%D0%9D%D1%8C%D1%8E%D1%82%D0%BE%D0%B D%D0%B0-%D0%A0%D0%B0%D1%84%D1%81%D0%BE%D0%BD%D0%B0)
в гугол полез смотреть что за метод, нашел исходники.
День добрый!
Столкнулся с одной проблемкой, никак не могу ее решить. Нужно одной строкой кода скопировать данные из встроенного С массива в vector. (без циклов и алгоритмов STL) Буду признателен за любую помощь.
std::vector<int> vec;
int blabla [] = {1, 2, 3};
vec.resize(3);
memcpy(&vec[0], blabla, sizeof(blabla));
Помогите пожалуйста.
напишите на С строковый класс string
BrainDeaD
14.09.2009, 14:39
Помогите пожалуйста.
напишите на С строковый класс string
си не поддерживает классы
ладно тогда в С++
Сформулирую конкретнее.Нужен СВОЙ строковый класс.С функциями сложения, вычитания и сравнения строк.
помогите пожалуйста! завтра зачет
на с++
Численные методы решения нелинейных дифференциальных уравнений.
1. Индивидуальное задание:
Решением дифференциального уравнения является неизвестная функция x(t). Необходимо, используя численные методы решения ДУ, найти эту функцию. Полученное численное решение необходимо сопоставить с точным, чтобы исследовать зависимость величины локальной ошибки от величины шага интегрирования.
Написать программу решения ДУ с помощью прямой (явной) формулы Эйлера.
Написать программу решения ДУ с помощью обратной (неявной) формулы Эйлера.
Написать программу решения ДУ с помощью формулы трапеций.
Сопоставить результаты численного и точного решений ДУ на экране монитора.
Дифференциальное уравнение (ДУ) x'(t)=-2x(t)
Решение ДУ x(t) =exp(-2t)
помогите пожалуйста! завтра зачет
на с++
Насколько я помню 2-й курс, программки там небольшие, но довольно хитрые и надо быть очень внимательным. Так что вряд ли кто-то возьмется за это. Поищи типовые решения. Например, вот это почитай http://www.cyberforum.ru/cpp/thread12928.html это часть решения твоих проблем. ГУГЛИМ!!!
ладно тогда в С++
Сформулирую конкретнее.Нужен СВОЙ строковый класс.С функциями сложения, вычитания и сравнения строк.
гыгы, приходят в голову самые разгильдяйские мысли.... создай свой класс и делегируй все необходимые методы String. Наверное, не прокатит, зато посмеетесь вместе с преподом. А можно унаследовать String и переопределить лишь необходимые тебе методы либо что-то расширить - это распространенный подход, типовое решение Decorator. И это не будет противоречить твоему заданию, зато ты не будешь переживать о мелочах.... которые порою сводят с ума )))
Ребята, помогите пожалуйста решить задачу ..
Даны действительные x, e (x!=0, e>0) и целые k, n числа. Вычислить
с точностью е бесконечную сумму и указать количество учтенных слагаемых.
Считать, что требуемая точность достигнута, если вычеслена сумма нескольких
первых слагаемых и очередное слагаемое оказалось по модулю меньше, чем е, -
это и все последующие слагаемые можно уже не учитывать. Проверить
правильность вычислений на тестовых примерах, используя возможности
отладчика, проследить изменение значений слагаемых суммы ряда, выполнив
отладку цикла. Определить диапазон возможных значений аргумента.*/
P.S. если можно, то комментарии в проге оставьте, чтоб я разбирался
сам пример - http://slil.ru/27976391
попробуй так
#include <iostream.h>
#include <math.h>
#include <conio.h>
int fac(int);
void main()
{
int x=1,k=0,E=6,f=0;
double a=0,n=0;
for (k=0; a<E; k++)
{
f =2*k+1;
n=pow(-1,k)*pow(x,f)/fac(k)*f;
cout<< a <<endl;
getch();
a+=n;
}
}
int fac(int k )
{
if ( k==0 ) return 1;
else return k*fac( k-1);
return 0;
}
Spider545
20.09.2009, 20:36
Ребят, помогите пожалуйста, вот такую лабораторную надо сделать на С++6, пожаааалуйста!)
В общем:
-Разработать программу для шифрования текстов по алгоритму, указанному в соответствующем варианте. Исходный текст должен браться из текстового файла. Результат должен быть записан в текстовый файл.
В программе "Шифр перестановкой". Размер блока и порядок перестановки символов указывается интерактивно при работе с программой.
-Дан шифротекст и размер блока. Требуется получить открытый текст и ключ — последовательность перестановки символов (получить автоматически).
Пожалуйста, пожалуйста, пожалуйста, помогитеееее!)
Spider545
21.09.2009, 18:53
аааа.......ну помогитеееее! HELP! HELP! HELP! пожаааааааалуйста!(
seregkaz
21.09.2009, 19:44
Пожалуйста помогите решить лабу и код выложите тут!
http://letitbit.net/download/3251.39b07d0873b74fa9da9888096/lab3.doc.html
Если можно объясните в комментариях что к чему!
Жду... Очень срочно :(
Fraud and dream
23.09.2009, 00:23
Помогите, пожалуйста, написать лабу на assebler для компилятора TASM
Задание:
Пpоцедуpа получает пpи вызове начальный адpес массива из N стpок в pегистpах DS:DX и pаспечатывает каждую тpетью стpоку, начинающуюся с буквы 'f'
Spider545
26.09.2009, 20:05
Кто может помочь с криптографией???????????????????))))
Составить структурированную программу для нахождения корня уравнения http://pic.ipicture.ru/uploads/090927/CfJIsq1Rp8.png на отрезке [0-1] с абсолютной погрешностью http://pic.ipicture.ru/uploads/090927/YV7dyUeX0F.png методом Итерраций. В программе предусмотреть подсчёт и выдачу на печать количество итерраций необходимых для вычисления значения корня с заданной точностью.
Программу нужно написать на Pascal
Прошу помогите мне с кодом отвечающим за расчёт этого уравнения...хотя бы алгоритм как это уравнение решить методом итерраций :(
.::BARS::.
27.09.2009, 09:55
Работа с памятью EEPROM ATmega16
Задание1. Сложить два числа хранящиеся в ячейках памяти по адресам 120H и 121H, записать полученную сумму в ячейку памяти по адресу 122H. В области EEPROM, начиная с адреса 008Н , содержащей 32 байта, поместить константу ААН.
------------------
асемблер
По итерациям что то вроде того:
program Iteraz;
uses graph,crt;
var
a,b,x1,x,f1,f2,e:real;
i,n:integer;
function ArcSin ( X : Real ): Real;
begin
if X = 1.0 then { чтобы не было деления на 0 }
ArcSin := Pi / 2.0
else
ArcSin := ArcTan ( X / Sqrt ( 1 - X * X ) );
end;
function f(tmpX:real):real;
begin
f:=sqrt(1*tmpX*tmpX)-ArcSin(tmpX);
end;
begin
a:=0;
b:=0.99;
x1:=a;
f1:=f(x1);
e:=0.001;
n:=round((b-a)/e);
writeln('Metod iterazii');
for i:=1 to n do begin
x:=x1+(b-a)/n;
f2:=f(x);
if f1*f2<=0 then begin
writeln('Done. X = ',(X+x1)/2:6:4);
writeln('Kolichectvo iterazii = ',i);
end;
x1:=x;f1:=f2;
end;
readkey;
end.
Метод итераций.
При решении нелинейного уравнения методом итераций воспользуемся записью уравнения в виде x=f(x). Задаются начальное значение аргумента x0 и точность e. Первое приближение решения x1 находим из выражения x1=f(x0), второе - x2=f(x1) и т.д. В общем случае i+1 приближение найдем по формуле xi+1 =f(xi). Указанную процедуру повторяем пока |f(xi)-xi| >eУсловие сходимости метода итераций |f'(x)<1| . Структограмма метода итераций:
http://i081.radikal.ru/0909/1e/f9864916a4ff.jpg
Не знаю корректно ли работает программа, но я в свое время её сдал ;D
Если подставить в качестве верхнего предела 1, то будет переполнение.
По сути все верно, так как если изменить интервал, то программа вообще не найдет решения.
Другой вариант:
program ITERAT;
uses crt;
const max_iter=100; {максимальное количество итераций}
var
i :integer;
x,x0,eps,M:real;
function ArcSin ( X : Real ): Real;
begin
if X = 1.0 then { чтобы не было деления на 0 }
ArcSin := Pi / 2.0
else
ArcSin := ArcTan ( X / Sqrt ( 1 - X * X ) );
end;
function F(tmpX:real):real; {функция}
begin
f:=sqrt(1*tmpX*tmpX)-ArcSin(tmpX);
end;
begin {основная программа}
clrscr;
x:=0;
x0:=0.99;
eps:=0.001;
i:=0;
repeat
M:=-(F(x+eps)-F(x-eps))/(2*eps); {коэффициент для улучшения сходимости}
x0:=x;
x:=x0+F(x0)/M; {сердце метода итераций}
inc(i);
until (abs(x-x0)<=eps)or(i>max_iter);
if (abs(x-x0)<=eps) then writeln('Otvet: X= ',x:6:4,' naiden za ',i,' shagov')
else writeln('Otvet ne naiden! Za ',max_iter:0,' shagov.');
readkey;
end.
Программа взята отсюда (http://forum.pascal.net.ru/index.php?showtopic=3789) и немного подредактирована.
Задача на TurboP связанная с циклами.
Найти среднее геометрическое всех целых положительных чисел меньше 10.
program SREDNEE_GEOMETRICHESKOE;
var
SrGeoM:real;
i:integer;
begin
SrGeom:=1;
for i:=1 to 9 do SrGeom:=SrGeom*i;
srGeom:=exp(ln(srGeom)/i);
writeln('Srednee geometricheskoe vseh zelih polozhitelnix chisel menshe 10 [1..9] = ',SrGeom:6:4);
readln;
end.
Результат работы:
Srednee geometricheskoe vseh zelih polozhitelnix chisel menshe 10 [1..9] = 4.147
2
Проверил на калькуляторе - сходится.
Создайте текстовый файл, содержащий сведения о телефонах абонентов: фамилия абонентов, год установки телефона. Напишите программу, которая формирует двоичный файл, каждый элемент которого является структурой, составленной на основе данных текстового файла. Отсортируйте данные бинарного файла в алфавитном порядке фамилий абонентов и по вводимой фамилии абонента выведите его номер телефона
Создать текстовый файл, содержащий сведения о сотрудниках института: фамилия работающего, название отдела, год рождения, стаж работы, должность, оклад. Напишите программу, которая формирует двоичный файл, каждый элемонт которого является структурой, составленной на основе данных текстового файла. Отсортируйте данные бинарного файла в порядке возрастания стажа работы. Выведите на экран информацию о сотрудниках, чей стаж работы больше Х лет.
С++
Ребят выручите.
jecka3000
28.09.2009, 18:29
Составить программу, вычисляющую значение переменной F по правилу:
min(x,y), если а -цифра
F=
max(x,y), если а - не цифра
Переменные x,y,F – вещественные, переменная a – символьная. Значение переменных x,y,a ввести с клавиатуры. На экран вывести значение переменных x,y,a и вычисленное значение переменной F.
язык - с#
ИСпользовать жедательно толко оператор if else.
Заранее спасибо)
Console.WriteLine("Enter x: ");
int x = int.Parse(Console.ReadLine());
Console.WriteLine("Enter y: ");
int y = int.Parse(Console.ReadLine());
Console.WriteLine("Enter a: ");
char a = char.Parse(Console.ReadLine());
int F = 0;
if(Char.IsDigit(a))
{
F = x > y ? y : x;
}
else if(Char.IsLetter(a))
{
F = x > y ? x : y;
}
Console.WriteLine("\nX: {0} ; Y: {1} ; A: {2}\nF: {3}", x,y,a,F);
Console.ReadLine();
С++
Ребят выручите.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ABONENTS_COUNT_MAX 500
#define LINE_MAX 256
typedef struct {
char name[LINE_MAX];
char phone_number[LINE_MAX];
unsigned int installation_year;
} abonent;
int abonents_compare (const void * a, const void * b) {
return strcmp(((abonent*)a)->name,((abonent*)b)->name);
}
int main(int argc, char** argv){
FILE * text_file = fopen(argv[1],"rt");
abonent abonents[ABONENTS_COUNT_MAX];
int abonents_count = 0;
char buf_name[LINE_MAX], buf_number[LINE_MAX];
int buf_year;
while( fscanf(text_file,"%s %s %d", buf_name,buf_number,&buf_year)!= EOF){
strcpy(abonents[abonents_count].name,buf_name);
strcpy(abonents[abonents_count].phone_number,buf_number);
abonents[abonents_count++].installation_year = buf_year;
}
fclose(text_file);
qsort (abonents, abonents_count, sizeof(abonent), abonents_compare);
FILE * struct_file = fopen("base.txt","w");
fwrite(abonents,sizeof(abonent),abonents_count,str uct_file);
fclose(struct_file);
char name[LINE_MAX];
while(1){
printf("Enter the name: ");
scanf("%s",name);
for(int i=0; i<abonents_count; i++)
if(strcmp(abonents[i].name,name)==0)
printf("%s\n",abonents[i].phone_number);
}
return 0;
}
Делов-то, это про телефоны, второе делай по аналогии. Перед тем, как идти сдавать, разберись, что в проге происходит. Она выполняет все, что от тебя требовалось.
Текстовый файл в таком формате
abonent 884756739 1998
hd 8288374 1999
1_abonent 44556654 1967
ss88
А как лучше - читать текстовый, создавать массив потом сортировать и записывать в бинарный файл или - сразу читать текстовик и записывать в бинарный а потом сортировать(уже в бинаре) ?
зависит от количества записей. если их очень много - то чтобы не убить оперативу делаешь сортировку слиянием, она работает с файлами. если записей не фатально много - сортировка в памяти и лишь потом запись.
Полностью согласен с Ra$cal, это уже тонкости контекста применения и это не касается банальной лабораторной работы 1-го или 2-го курса, которая рассматривалась в данном случае.
Вот бы преподы радовались, если бы мы писали такой код на 1-м или 2-м курсе ))) А то... вспомню-вздрогну )))
27 школьных задач по turbopascal - 500 рублей , могу и webmoney ...
скачать задачи (http://www.filehoster.ru/files/dn4952)
кому интересно :
icq : 2669856-пять-шесть
27 школьных задач по turbopascal - 500 рублей , могу и webmoney ...
скачать задачи (http://www.filehoster.ru/files/dn4952)
кому интересно :
icq : 2669856-пять-шесть
А самому, не? )))
у меня нет времени , сейчас работаю ... завтра сдавать .
кто-нибудь может переписать этот код в наиболее простой вид?
#ifndef MYSTRING_HPP
#define MYSTRING_HPP
#include <cstring> // memcpy, strlen
#include <cstdlib> // malloc, realloc
class MyString {
private:
char *data;
size_t length;
public:
MyString() : data(0), length(0) { } // default constructor
MyString(const char *str) {
if (0 != str) {
size_t size = std::strlen(str) + 1;
length = size - 1;
data = static_cast<char *>(std::malloc(size));
std::memcpy(data, str, size);
} else {
length = 0;
data = 0;
}
}
MyString(const MyString& other) {
length = other.length;
data = static_cast<char *>(std::malloc(length + 1));
std::memcpy(data, other.data, length + 1);
}
~MyString() {
if (0 != data) {
delete data;
}
}
MyString& operator=(const MyString& rhs) {
if (this == &rhs) {
return *this;
}
length = rhs.length;
data = static_cast<char *>(std::realloc(data, length + 1));
std::memcpy(data, rhs.data, length + 1);
return *this;
}
operator const char*() {
return data; // unsafe
}
MyString& operator+=(const MyString& rhs) {
data = static_cast<char *>(std::realloc(data, length + rhs.length + 1));
std::memcpy(data + length, rhs.data, rhs.length + 1);
length += rhs.length;
}
const MyString operator+(const MyString& rhs) const {
return MyString(*this) += rhs;
}
char operator[](int idx) const {
if (idx >= 0 && idx <= length) {
return data[idx];
}
}
char& operator[](int idx) {
if (idx >= 0 && idx <= length) {
return data[idx];
}
}
};
#endif
Spider545
01.10.2009, 21:31
Кто-нибудь может написать дешифратор (Метод простой перестановки) на СИ??????
Обьясни поконкретнее, может, разомнусь...
Люблю С :)
Gray_Wolf
02.10.2009, 14:11
Обьясни поконкретнее, может, разомнусь...
Люблю С :)
Вот описание алгоритма:
http://protect.htmlweb.ru/p11.htm#MP
2Spider545 исходные данные для проги должны быть: строка, N и M? или я неправильно понял?
Дан файл, в котором записано N символов. Найти наиболее часто встречающийся элемент в файле (файл будет более чем наполовину состоять из него) за O(1) памяти (не используя массивы и динамические структуры памяти).
Например:
19zz2gzzkozfz5zxOzzzDjzfzzz
Программа должна вывести:
z
Ах да, чуть не забыл, разрешается пройтись по файлу только 1 раз.
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Xнач. до Xкон. с шагом dX
__{ax^2 + b, при x<0 и b!=0
F={(x-a)/(x-c), при x>0 и b=0
__{x/c, в остальных случаях
где a,b,c - действительные числа
Функция F должна принимать действительное значение, если выражение (a или b) и (a или с)
не равно нулю, и целое значениt в противном случае.Значение ввести с клавиатуры
поможет кто нибудь?))
язык с#
Spider545
02.10.2009, 17:52
Обьясни поконкретнее, может, разомнусь...
Люблю С :)
вот само задание:
Разработать программу, взламывающую шифр, основываясь на статистике естественного языка.
Исходные данные : Дан шифротекст и размер блока. Требуется получить открытый текст и ключ — последовательность перестановки символов (получить автоматически).
И все основываясь на метод простой перестановки. :)
Gray_Wolf
02.10.2009, 22:40
вот само задание:
Разработать программу, взламывающую шифр, основываясь на статистике естественного языка.
Исходные данные : Дан шифротекст и размер блока. Требуется получить открытый текст и ключ — последовательность перестановки символов (получить автоматически).
И все основываясь на метод простой перестановки. :)
Мда...
Какбы в то что вы первоначально тут спросили никак не входил криптоанализ...
И у меня возникло предчувствие что даже в ВУЗах на подобное даётся не 2 дня :)
И если по части программирования эта задача достаточно тривиальна, то криптоанализ в виде статистики естественного языка требует как минимум наличия этой самой статистики...(которая у вас должна быть)
А так задачка достаточно интересная, но как я уже говорил без доп. материалов можно слишком перемудрить, и тогда вам сложно будет выдать эту программу за свою...
Spider545
03.10.2009, 11:35
Эта самая статистика есть могу выложить тут)))))
Вся проблема в том как получить ключ из текста, с данными этой статистики, как реализовать на СИ....
А потом уже как есть ключ текст по блочно расшифровывается...так вот дела(((
Gray_Wolf
03.10.2009, 11:55
Эта самая статистика есть могу выложить тут)))))
Вся проблема в том как получить ключ из текста, с данными этой статистики, как реализовать на СИ....
А потом уже как есть ключ текст по блочно расшифровывается...так вот дела(((
В вашем случае думаю лучше создать здесь отденьную тему, в шапке которой максимально описать задачу, и выдать максимум имеющихся данных.
А алгоритм у вас будет примерно следующим:
Т.к. длинна ключа нам всётаки известна, мы делаем перебор всех возможных вариантов, и основываясь на статистике давать каждому результату коэфициент верности. После чего вариант с наивысшим коэфициентом и будет верным.
Это самый ресурсоёмкий вариант, но вместе с тем и самый простой.
Усложнить и ускорить его можно например если вводить доп. данные, такие как "слово не может начинаться на Ы, Ъ и Ь" что уменьшить потенциальное кол-во вариантов для перебора...
Кому будет скучно, еще 1 на TP.
Найти сумму целых положительных чисел кратных 4м и меньше 50и.
На паскале оч. давно не писал...
program Project1;
var
summ, i: integer;
begin
i:=0;
summ:=0;
while true do
begin
inc(i, 4);
if i > 50 then break;
inc(summ, i);
end;
writeln('Summ: ', summ);
readln;
end.
043nKRuT0y
04.10.2009, 16:07
Всем привет !
Так как ето единый раздел для ЛР задаю вопрос здесь ....
В общем помогите решыть на "JAVA"
-Дано целое число N (> 0). Найти значение выражения
1.1 – 1.2 + 1.3 – …
(N слагаемых, знаки чередуются). Условный оператор не использовать.
-Дано число A (> 1). Вывести наименьшее из целых чисел K, для которых сумма 1 + 1/2 + … + 1/K будет больше A, и саму эту сумму.
-Описать процедуру SortDec3(A, B, C), меняющую содержимое переменных A, B, C таким образом, чтобы их значения оказались упорядоченными по убыванию (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры упорядочить по убыванию два данных набора из трех чисел: (A1, B1, C1) и (A2, B2, C2).
>>serhio<<
04.10.2009, 16:35
Помогите найти ошибку!
program primer;
var
f,x:real;
begin
writeln(x=');
readln(x);
ifx>0then
f:=(exp(3*ln(x))/sgrt(3))-exp(x)*ln(abs(exp(3*ln(1,37)+exp(3*ln(x))+4/3
else
f:=(exp(3*ln(x))=sgrt(7))/cos(x-2pi))-ln(abs(exp(3*ln(x)))+4*(sin(x)/cos(x));
writeln('f=',f);
readln;
end.
program primer;
var
f,x:real;
begin
writeln('x=');
readln(x);
if x>0 then
f:=(exp(3*ln(x))/sqrt(3))-exp(x)*ln(abs(exp(3*ln(1.37)+exp(3*ln(x))+4/3)))
else
f:=(exp(3*ln(x))/sqrt(7))/cos(x-2*pi)-ln(abs(exp(3*ln(x)))+4*(sin(x)/cos(x)));
writeln('f=',f:6:4);
readln;
end.
Ошибок очень много выделять было лень, как я понял будет что то вроде того, если скобки верно добавил (там где надо).
Результат работы:
x=
1
f=-8.3325
>>serhio<<
04.10.2009, 16:56
Все получилось! Спасиба :)
>>serhio<<
04.10.2009, 18:48
Еще нужна помощь срочно плз! А, то это я вообще понять не могу кто поможет разобраться, буду очень благодарен.
[/QUOTE]Задание№1: Разработать программу табулирования функций для произвольного диапазона изменения независимого параметра или аргумента. Выполнить расчет для заданных значений исходных данных использованных
x=1-2*cos (a*y)+ln(y), a=log2(y),y є [П;2П] ly=П/4
Результаты вывести в следующем виде:значение аргумента,значение вспомагательной функции и результата.
В программу включить ввод исходных данных и проверку 0т-100до100.Начальное значение меньше конечного, шаг разности от начального и конечного.
Задание№2:Вычислить сумму рядов.Определить тип общего члена рядов и организовав вычисления его суммы со структур вложенных циклов получить результат указав при этом к какому аргументу х он соответствует. Предусмотреть возможность ввода х находится в диапазоне от -1 до 1.
2x^/1! – 3x^2/2! + 4x^3/3! – 5x^4/4! +...+- (i+1)xi/i!*н...
Всем привет !
Так как ето единый раздел для ЛР задаю вопрос здесь ....
В общем помогите решыть на "JAVA"
-Дано целое число N (> 0). Найти значение выражения
1.1 – 1.2 + 1.3 – …
(N слагаемых, знаки чередуются). Условный оператор не использовать.
-Дано число A (> 1). Вывести наименьшее из целых чисел K, для которых сумма 1 + 1/2 + … + 1/K будет больше A, и саму эту сумму.
-Описать процедуру SortDec3(A, B, C), меняющую содержимое переменных A, B, C таким образом, чтобы их значения оказались упорядоченными по убыванию (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры упорядочить по убыванию два данных набора из трех чисел: (A1, B1, C1) и (A2, B2, C2).
С удовольствием помогу, если почетче напишешь задание, потому, что я не телепат и не понимаю, что такое N, когда оно дано, но не фигурирует в формуле
BrainDeaD
04.10.2009, 22:13
С удовольствием помогу, если почетче напишешь задание, потому, что я не телепат и не понимаю, что такое N, когда оно дано, но не фигурирует в формуле
хм, что ж там непонятного? написано же "N слагаемых", то есть N-1 плюсов с минусами.
хм, что ж там непонятного? написано же "N слагаемых", то есть N-1 плюсов с минусами.
Грум-грум, пропустил слово :) Бывает :)
Всем привет !
Так как ето единый раздел для ЛР задаю вопрос здесь ....
В общем помогите решыть на "JAVA"
-Дано целое число N (> 0). Найти значение выражения
1.1 – 1.2 + 1.3 – …
(N слагаемых, знаки чередуются). Условный оператор не использовать.
/**
*
*/
/**
* @author ss88
*
*/
public class Question1 {
/**
* @param args
*/
public static void main(String[] args) {
/* Количество слагаемых */
int N = Integer.parseInt( args[0] );
double summand = 1;
double result = summand;
for(int i = 0; i < N; i++){
summand+=0.1;
result += (i%2 == 0)?summand:-summand;
}
System.out.println("Count of summands = " + N + " Result is " + result);
}
}
043nKRuT0y
06.10.2009, 10:36
спс за помощь , с двумя остальными разобрался !!!
Программа на TP с элементами массивов. :)
Ввести 5 целых чисел. Вывести на экран это число (результатирующее), корень этого числа и квадрат этого числа.
Syntaxys
06.10.2009, 23:22
Расчет движения автомобиля.
На начальном этапе учитывать трение качения, в дальнейшем условиться, возможно резким ухудшением качества сцепления колеса с дорожным покрытием (автомобиль попал на масло) . Провести расчет дальнейшего движения (интеллектуальный рассчет выхода из заноса, выравнивание траектории).
Совсем не знаю физику =/ Помогите пожалуйста с математическим обоснованием. Скромная благодарность в виде пары сотен р. на телефон/вебмани тому, кто напишет правильное обоснование гарантируется.
Spider545
07.10.2009, 09:06
Помогите сделать в C++ Builder
вот такое задание:
1. Реализовать стек при помощи массива. Тип данных стека - int. Со стеком должны выполняться стандартные операции:
1) Push – добавление элемента в стек;
2) Pop – удаление элемента из стека (с выдачей значения удаляемого элемента);
3) Выдача значения верхнего элемента;
4) Очистка стека;
5) Печать количества элементов стека.
2. Реализовать очередь при помощи указателей. Тип данных очереди – int. С очередью должны выполняться стандартные операции:
1) Добавление элемента в очередь;
2) Удаление элемента из очереди (с выдачей значения исключаемого элемента);
3) Выдача значения первого элемента;
4) Очистка очереди;
5) Выдача количества элементов очереди.
superboy4
07.10.2009, 12:55
Среда: Паскаль
Задача1: Дано трехзначное число. Найти сумму и произведение его цифр.
задача2: Дан номер некоторого года (целое положительное число). Определить соответствующий ему номер столетия, учитывая, что, к примеру, началом 20 столетия был 1901 год.
помогите решить!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot