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

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

## Recommended Posts

MakentoIII:

`var t:string; i,j,k:integer;beginwriteln('Vvedite tekst '); readln(t); t:=' '+t; k:=0; for i:=length(t) downto 1 do if t[i]>='0' then inc(k) else begin for j:=i+1 to i+k do write(t[j]); if k<>0 then write(' '); k:=0 end;writeln; readlnend.`
##### Share on other sites

Большое спасибо очень помогли

есть еще одна задачка и тоже на паскале

Вот задание

Составить список, содержащий сведения об N студентах. Для каждого учащегося указать:

- фамилия;

- ИНН (идентификационный номер налогоплательщика);

- дата выдачи Свидетельства о постановке на учет в налоговом органе;

- дата рождения;

- год поступления в университет;

- курс;

- группа;

- количество семестров обучения;

- оценки каждой сессии по всем семестрам.

Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Составить программу, которая обеспечивает ввод исходных данных, обработку и вывод на экран информации

Упорядочить список студентов по году рождения и вывести его на экран. N = 6.

##### Share on other sites

Загвоздочка из заданием...

Вьівести на екран побайтно число типа float введенное с клавиатурьі. Думал так:

```#include <iostream>
using namespace std;
struct bit {unsigned char x1:4, x2:4,x3:4,x4:4;};
union  {bit n;float c;} x;
main()
{
scanf ("%f",&x.c);
printf("\n%d\n%d\n%d\n%d",x.n.x4,x.n.x3,x.n.x2,x.n.x1);
getchar();getchar();
}```

но програма просто вьірубается и ничего не делает

##### Share on other sites

```union  {float f; unsigned char c;} x;

int main(int argc, _TCHAR* argv[])
{
cin >> x.f;
cout << endl << hex;
for (int i=0; i < 4; i++)
cout << int(x.c[i]) << endl;
system("pause");
}```

##### Share on other sites

MakentoIII:

Задача в основном на тренировку печатания на клавиатуре. Делать нечего, только перепечатывать названия из условия. Такие надо самому делать, собственно программирования тут практически нет.

`const n=6;var i,j:integer; a:array[0..n]of record f:string; inn,d:string; p,k,g,s:integer; o:array[1..20]of byte; end;beginfor i:=1 to n do with a[i] do beginwrite('familia '); readln(f);write('INN '); readln(inn);write('data rozd. '); readln(d);write('god post. '); readln(p);write('kurs '); readln(k);write('gruppa '); readln(g);write('semestrov '); readln(s);write('ozenki '); for j:=1 to s do read(o[j]); readln; writeln; end;for i:=1 to n-1 do for j:=1 to n-i do  if copy(a[j].d,length(a[j].d)-4,4)>copy(a[j+1].d,length(a[j+1].d)-4,4) thenbegin a:=a[j]; a[j]:=a[j+1]; a[j+1]:=a end;writeln('familia				 INN	 data rozd.	  post kurs gr. sem.  ozenki');for i:=1 to n do with a[i] do begin write(f,'':20-length(f),inn:10,'  ',d:10,' ',p:9,k:4,g:4,s:6); for j:=1 to s do write(o[j]:2); writeln; end;readlnend.`

Названия писал транслитом, слова на русском у меня Pascal искажает (имитатор DOS не русифицирован).

Дата рождения вводится в виде 18.12.1980

Оценки по семестрам вводятся друг за другом через пробел или Enter, их должно быть столько, сколько указано семестров. Для проверки, чтобы не мучиться с вводом данных для шести студентов, можно временно заменить n=6 на n=2

Edited by Тролль
##### Share on other sites

Народ помогите плиз. Требуется сделать плагин для граф редактора. По функциям как ластик из пейнта.

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

`using System;using System.Drawing;using System.Windows.Forms;using Oop.Tasks.Paint.Interface;namespace Oop.Tasks.Paint.Plugins{ [PluginForLoad(true)]public class Polygon: IToolPaintPlugin{private IPaintPluginContext pluginContext=null;private Cursor cursor=null;private Image icon=null;public bool doDraw = false;private IPaintApplicationContext ApplicationContext{  get   {	if(pluginContext==null) return null;	else return pluginContext.ApplicationContext;  }}public void AfterCreate(IPaintPluginContext pluginContext) {  this.pluginContext=pluginContext;  string imageDir=pluginContext.PluginDir;  if(imageDir!=null) {	imageDir+=@"\Images\";	try 	{	  icon=Image.FromFile(imageDir+"Icon.bmp");	}	catch 	{	  // подавление исключения	}	try 	{	  cursor=new Cursor(imageDir+"Cursor.cur");	}	catch 	{	  // подавление исключения	}  }}public void BeforeDestroy() {  if(cursor!=null) cursor.Dispose();  if(icon!=null) icon.Dispose();}public void Select(bool selection) {  if(selection)   {	ApplicationContext.Cursor=cursor;  }  else   {	ApplicationContext.Cursor=null;  }}public string Name {  get   {	return this.GetType().Name;  }}public string CommandName {  get   {	  return "Ластик";  }}private Point[] points = new Point;public void MouseDown(MouseEventArgs me, Keys modifierKeys){	doDraw = true;}public void MouseUp(MouseEventArgs me, Keys modifierKeys){	doDraw = false;}public void MouseMove(MouseEventArgs me, Keys modifierKeys){	if (doDraw)	{		Graphics g = Graphics.FromImage(ApplicationContext.Image);		SolidBrush whiteBrush = new SolidBrush(Color.Red);		g.FillEllipse(whiteBrush, me.X, me.Y, 10, 10);	}}public void Escape(){}public void Enter(){}public void ColorChange(){}public void ImageChange() {}public string ToolName {  get  {	return "";  }}public Image Icon{  get  {	return icon;  }}}}`
##### Share on other sites

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

##### Share on other sites

• 2 weeks later... Сил моих больше нет. Не хочет корректно срабатывать отключение дисплея: отключится через установленные ему десять минут и сразу снова включается. Спать мне жутко через это. Беда обычно происходит после работы просмотровщиков видео или ТВ-программы (BeholdTV у меня) в полноэкранном режиме. Может быть дрова не те, а может ещё что-то. Но я уже, и дрова менял, и все настройки, и экрана, и дров, и софта перепробовал.

Помогает одно: два раза (одного бывает мало) залезть в «Свойства экрана — Заставка — Питание» и выставить уже итак выставленное Отключение дисплея через десять минут. Вот тогда срабатывает как надо и ночью мне становится счастье в виде сна под чёрный экран и плавно закачиваемые фильмы с торрентов.

Поэтому просьба: а напишите мне пожалуйста батник, выполняющий действия по отключению дисплея через те десять минут. А уж я его тогда себе на кнопку пульта повешу, буду этак удалённо гасить монитор и вас добром вспоминать. А не напишите — шмальнусь с дула и записку оставлю.

##### Share on other sites

Батник:

Подойти к монитору

Нажать кнопку Power (или как там она называется)

Отойти от монитора

Упасть в койку

Наслаждаться некоторое время выключенным монитором

Проснуться, нажать кнопку Power (или как там она называется)

посмотреть, что же там этакого офигительного на машинку закачалось...

P.S. Это в том случае, ежели не удастся овладеть скиллом "Настройка автовыключения монитора", прописанного в свойствах. системы.

P.P.S. А ежели серьёзно - то описанная Вами ситуация случается в том случае, ежели Вы не проследили за теми Событиями, на кои монитор должен срабатывать. И, опять же - никто не отменял законодательно кнопку Power.

##### Share on other sites

Ну, сон под дистанционное включение черного экрана легко реализовать. Хотя, конечно, тушить самопроизвольно включающийся свет - это, как говорят, "туши свет"... Однако в батнике для тушения экрана будет всего одна строка: scrnsave.scr

Edited by Тролль
• 1
##### Share on other sites

• 2 weeks later...

Перехожу на Qt. в связи с етим решил таки немного поучить с++. Есть пример задания свойства для класа:

`#ifndef CORE_H#define CORE_H#include <QObject>class Core : public QObject{Q_PROPERTY (bool readOnly READ isReadOnly WRITE setReadOnly)private: bool m_bReadOnly;public:Core(QObject* pobj=0):QObject (pobj), m_bReadOnly(false) {}public:void setReadOnly (bool bReadOnly) {m_bReadOnly=bReadOnly;}bool isReadOnly () const {return m_bReadOnly;}};#endif // CORE_H`

Пожалуйста кто может обьясните дураку вот ету строчку:

`Core(QObject* pobj=0):QObject (pobj), m_bReadOnly(false) {}`

ну инициализация m_bReadOnly(false) понятна. А вот к чему там pobj , зачем его равнять 0 и что такое QObject (pobj) ?

ой. дико извиняюсь. Во дурак. Как же то юзать фукнции надо. pobj просто переменная типа QObject. и там так же осуществляется ее инициализация. Токо вот в че вопрос почему QObject* pobj=0 здесь равно 0?

##### Share on other sites

core_st:

pobj - указатель на переменную типа QObject. Он тут инициализируется нулем.

##### Share on other sites

Здравствуйте! Это задачка по Паскалю из моей контрольной (я на 1 курсе): "В компьютер вводится одно натуральное число, состоящее не более чем из пяти цифр. Составить программу, выводящую на экран значение этого числа словами". Контрольную я сдала, но преподаватель сказал, что очень большой исходный код. Подскажите, как его уменьшить?

`program NADPIS3;var n,k,a:integer;procedure edinica(a:integer);  begin  case a of   1: write('один ');   2: write('два ');   3: write('три ');   4: write('четыре ');   5: write('пять ');   6: write('шесть ');   7: write('семь ');   8: write('восемь ');   9: write('девять ');   0: write('десять ');   end;  end;procedure odinnad(a:integer);  begin  case a of   1: write('одиннадцать ');   2: write('двенадцать ');   3: write('тринадцать ');   4: write('четырнадцать ');   5: write('пятнадцать ');   6: write('шестнадцать ');   7: write('семнадцать ');   8: write('восемнадцать ');   9: write('девятнадцать ');   0: write('десять ');  end;  end;procedure sotni(a:integer);  begin  case a of   1: write('сто ');   2: write('двести ');   3: write('триста ');   4: write('четыреста ');   5: write('пятьсот ');   6: write('шестьсот ');   7: write('семьсот ');   8: write('восемьсот ');   9: write('девятьсот ');   0: write('');  end;  end;procedure decyatki(a:integer);  begin  case a of   1: write('');   2: write('двадцать ');   3: write('тридцать ');   4: write('сорок ');   5: write('пятьдесят ');   6: write('шестьдесят ');   7: write('семьдесят ');   8: write('восемьдесят ');   9: write('девяносто ');   0: write('');  end;  end;procedure tysyachi(a:integer);  begin  case a of   1: write('одна тысяча ');   2: write('две тысячи ');   3: write('три тысячи ');   4: write('четыре тысячи ');   5: write('пять тысяч ');   6: write('шесть тысяч ');   7: write('семь тысяч ');   8: write('восемь тысяч ');   9: write('девять тысяч ');   0: write('');  end;  end;procedure opred(var n,k:integer);  begin n:=n mod k; k:=k div 10; a:=n div k; odinnad(a);  end;procedure razryad(var k:integer);  begin  case k of   10000: if a=1 then   begin	opred(n,k);	write('тысяч ');   end   else decyatki(a);   1000 : tysyachi(a);   100  : sotni(a);   10   : if a=1 then opred(n,k) else decyatki(a);   1	: edinica(a);  end;  end;begin  writeln('‚Введитечисло, состоящее не более чем из 5 знаков');  readln(n);  k:=10000;  while (n>0) and (k>0)  do  begin	 a:=n div k;	 razryad(k);	 n:=n mod k;	 k:=k div 10;  end;  readln;end.`
##### Share on other sites

прошупомощи:

Простейший путь сокращения - сделай вместо процедур с оператором case массивы строк. Например, объяви вместо процедуры decyatki в начале программы

`const decyatki:array[0..9]of string=(' ',' ','двадцать ','тридцать ','сорок ','пятьдесят ','шестьдесят ','семьдесят ','восемьдесят ','девяносто ');`

и вместо decyatki(a) вызывай write(decyatki[a])

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

Edited by Тролль
##### Share on other sites

Тролль: лучше многомерный, так будет ещё короче. А можно все слова засунуть в текстовый файл и считать :D

PS Преподаватель - извращенец :blush2:

##### Share on other sites

Тролль , Indomito: спасибо большое, я поняла :blush2: :D

##### Share on other sites

Помогите плз создать калькулятор в C++ Builder 6.0

Вот что у меня получилось , нужно еще добавить "+" , "-" , "*" , "/" , "=" , "c" http://rapidshare.de/files/49126248/Calculator.rar.html

##### Share on other sites

Помогите пожалуйста решать задание.Си++

Написать и протестировать функцию для решения следующей задачи.

Найти наименьшую из нечетных компонент вектора и наибольшую из четных компонент. Если они имеют разные знаки, то вычислить сумму элементов вектора, а в противном случае определить произведение положительных элементов вектора

##### Share on other sites

C1keu:

`#include<iostream>using namespace std;float fun(float b[], int n){int i,t=1; float min,max,r;min=b; for(i=0;i<n;i+=2)if(b[i]<min)min=b[i]; max=b; for(i=1;i<n;i+=2)if(b[i]>max)max=b[i];if(min*max<0){r=0; for(i=0;i<n;i++)r+=b[i];} else {r=1; for(i=0;i<n;i++)if(b[i]>0){r*=b[i]; t=0;}if(t)r=0;} return r;}	  main(){float a; int i,n;cout<<endl<<"n="; cin>>n;for(i=0;i<n;i++){cout<<"a["<<i<<"]="; cin>>a[i];}cout<<"result="<<fun(a,n)<<endl; getchar(); getchar();}`

Считаю, что в векторе (не в программе) элементы нумеруются с единицы, то есть нечетные элементы вектора - первый, третий и так далее. В задании также не сказано, что должно получаться, если при вычислении произведения положительных элементов таковых не оказывается. В программе в этом случае будет выведен нуль.

Edited by Тролль
##### Share on other sites

C1keu:

`#include<iostream>using namespace std;float fun(float b[], int n){int i,t=1; float min,max,r;min=b; for(i=0;i<n;i+=2)if(b[i]<min)min=b[i]; max=b; for(i=1;i<n;i+=2)if(b[i]>max)max=b[i];if(min*max<0){r=0; for(i=0;i<n;i++)r+=b[i];} else {r=1; for(i=0;i<n;i++)if(b[i]>0){r*=b[i]; t=0;}if(t)r=0;} return r;}	  main(){float a; int i,n;cout<<endl<<"n="; cin>>n;for(i=0;i<n;i++){cout<<"a["<<i<<"]="; cin>>a[i];}cout<<"result="<<fun(a,n)<<endl; getchar(); getchar();}`

Считаю, что в векторе (не в программе) элементы нумеруются с единицы, то есть нечетные элементы вектора - первый, третий и так далее. В задании также не сказано, что должно получаться, если при вычислении произведения положительных элементов таковых не оказывается. В программе в этом случае будет выведен нуль.

Мм, но там есть про разные знаки,это значит что нужно начать например с -13? Не важно что получится при произведении,нужно просто вывести результат который получется от произведения найденных компонент вектора.И можна пожалуйсто под Borland написать.\

Спасибо за помощь и труд! :)

##### Share on other sites

C1keu:

но там есть про разные знаки,это значит что нужно начать например с -13?
13 - чертова дюжина, с нее начинать не рекомендуется :blink: Откуда взялось это число? В условии сказано: "Найти наименьшую из нечетных компонент вектора и наибольшую из четных компонент. Если они имеют разные знаки..." Так и сделано.
Не важно что получится при произведении,нужно просто вывести результат который получется от произведения найденных компонент вектора.
А если найдено 0 компонент, что выводить? Я вывожу 0.
можна пожалуйсто под Borland написать
Тут нет ничего специально для какого-то компилятора. На всякий случай проверил в Борландовском, работает.

P.S. Не надо целиком цитировать в ответе предыдущее сообщение. И так ясно, о чем речь. Если вопрос или замечание по какой-то части сообщения, можно процитировать именно ее.

##### Share on other sites

Хорошо,насчет целиком понял.

Наверно надо было сразу сказать,что код нужно написать для старенького Borland 3.1

А то он данный код не принимает.

##### Share on other sites

C1keu:

код нужно написать для старенького Borland 3.1

А то он данный код не принимает.

Ну и переделал бы сам - тут-то уж и делать нечего.

Надо заменить в начале программы строки

#include<iostream>

using namespace std;

на

#include<iostream.h>

#include<stdio.h>

Полезно еще убрать один из двух операторов getchar(); в конце программы - из-за него в 3.1 придется нажимать Enter дважды, чтобы выйти из программы.

##### Share on other sites

Спасибо,понятно.

Но Borland 3.1

Не понимает cout и т.д

`cout<<endl<<"n="; cin>>n;for(i=0;i<n;i++){cout<<"a["<<i<<"]="; cin>>a[i];}cout<<"result="<<fun(a,n)<<endl; getchar(); getchar();}`

Можно тоже самое только под борланд.

Я просто только начал изучать(в вузе с него)

А до этого, не изучал никакой язык.

##### Share on other sites

C1keu:

Borland 3.1 прекрасно понимает cout и т.д. Если не понимает, значит, неправильно установлен.

Но нетрудно переписать ввод-вывод и в варианте чистого C.

`#include<stdio.h>float fun(float b[], int n){int i,t=1; float min,max,r;min=b; for(i=0;i<n;i+=2)if(b[i]<min)min=b[i]; max=b; for(i=1;i<n;i+=2)if(b[i]>max)max=b[i];if(min*max<0){r=0; for(i=0;i<n;i++)r+=b[i];} else {r=1; for(i=0;i<n;i++)if(b[i]>0){r*=b[i]; t=0;}if(t)r=0;} return r;}	  main(){float a; int i,n;printf("n="); scanf("%d",&n);for(i=0;i<n;i++){printf("a[%d]=",i+1); scanf("%f",&a[i]);}printf("result=%f",fun(a,n)); getchar(); getchar();}`

Проверил в том же Borland C++ 3.1, хотя этот вариант должен уже и в самом первом борландовском Turbo C идти (конечно, если он правильно установлен...).  Edited by Тролль

## Join the conversation

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

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

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

×
• ### Recently Browsing   0 members

• No registered users viewing this page.

### Announcements

×
×
• Create New...