Тролль Опубликовано 30 декабря, 2009 Жалоба Поделиться Опубликовано 30 декабря, 2009 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. Ссылка на комментарий Поделиться на другие сайты Поделиться
MakentoIII Опубликовано 3 января, 2010 Жалоба Поделиться Опубликовано 3 января, 2010 Большое спасибо очень помогли есть еще одна задачка и тоже на паскале Вот задание Составить список, содержащий сведения об N студентах. Для каждого учащегося указать: - фамилия; - ИНН (идентификационный номер налогоплательщика); - дата выдачи Свидетельства о постановке на учет в налоговом органе; - дата рождения; - год поступления в университет; - курс; - группа; - количество семестров обучения; - оценки каждой сессии по всем семестрам. Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Составить программу, которая обеспечивает ввод исходных данных, обработку и вывод на экран информации Упорядочить список студентов по году рождения и вывести его на экран. N = 6. Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 3 января, 2010 Жалоба Поделиться Опубликовано 3 января, 2010 Загвоздочка из заданием... Вьівести на екран побайтно число типа 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(); } но програма просто вьірубается и ничего не делает Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 3 января, 2010 Жалоба Поделиться Опубликовано 3 января, 2010 union {float f; unsigned char c[4];} 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"); } Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 3 января, 2010 Жалоба Поделиться Опубликовано 3 января, 2010 (изменено) MakentoIII: Задача в основном на тренировку печатания на клавиатуре. Делать нечего, только перепечатывать названия из условия. Такие надо самому делать, собственно программирования тут практически нет. const n=6;var i,j:integer; a:array[0..n]of record f:string[20]; inn,d:string[10]; 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[0]:=a[j]; a[j]:=a[j+1]; a[j+1]:=a[0] 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 Изменено 3 января, 2010 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
AutoGen Опубликовано 6 января, 2010 Жалоба Поделиться Опубликовано 6 января, 2010 Народ помогите плиз. Требуется сделать плагин для граф редактора. По функциям как ластик из пейнта. Я его сделал как простую кисть белого цвета, но отрисовки не происходит хотя ошибок вроде нет, посмотрите пожалуйста 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[0];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; }}}} Ссылка на комментарий Поделиться на другие сайты Поделиться
Егор N Опубликовано 7 января, 2010 Жалоба Поделиться Опубликовано 7 января, 2010 Помогите пожалуйста написать программу. Задание: функция вставляет в строку другую строку, начиная с заданной позиции. При реализации функции запрещается пользоваться функциями библиотек языка C. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость mitka Опубликовано 22 января, 2010 Жалоба Поделиться Опубликовано 22 января, 2010 Сил моих больше нет. Не хочет корректно срабатывать отключение дисплея: отключится через установленные ему десять минут и сразу снова включается. Спать мне жутко через это. Беда обычно происходит после работы просмотровщиков видео или ТВ-программы (BeholdTV у меня) в полноэкранном режиме. Может быть дрова не те, а может ещё что-то. Но я уже, и дрова менял, и все настройки, и экрана, и дров, и софта перепробовал. Помогает одно: два раза (одного бывает мало) залезть в «Свойства экрана — Заставка — Питание» и выставить уже итак выставленное Отключение дисплея через десять минут. Вот тогда срабатывает как надо и ночью мне становится счастье в виде сна под чёрный экран и плавно закачиваемые фильмы с торрентов. Поэтому просьба: а напишите мне пожалуйста батник, выполняющий действия по отключению дисплея через те десять минут. А уж я его тогда себе на кнопку пульта повешу, буду этак удалённо гасить монитор и вас добром вспоминать. А не напишите — шмальнусь с дула и записку оставлю. Ссылка на комментарий Поделиться на другие сайты Поделиться
Yezhishe Опубликовано 22 января, 2010 Жалоба Поделиться Опубликовано 22 января, 2010 Батник: Подойти к монитору Нажать кнопку Power (или как там она называется) Отойти от монитора Упасть в койку Наслаждаться некоторое время выключенным монитором Проснуться, нажать кнопку Power (или как там она называется) посмотреть, что же там этакого офигительного на машинку закачалось... P.S. Это в том случае, ежели не удастся овладеть скиллом "Настройка автовыключения монитора", прописанного в свойствах. системы. P.P.S. А ежели серьёзно - то описанная Вами ситуация случается в том случае, ежели Вы не проследили за теми Событиями, на кои монитор должен срабатывать. И, опять же - никто не отменял законодательно кнопку Power. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 22 января, 2010 Жалоба Поделиться Опубликовано 22 января, 2010 (изменено) Ну, сон под дистанционное включение черного экрана легко реализовать. Хотя, конечно, тушить самопроизвольно включающийся свет - это, как говорят, "туши свет"... Однако в батнике для тушения экрана будет всего одна строка: scrnsave.scr Изменено 22 января, 2010 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 3 февраля, 2010 Жалоба Поделиться Опубликовано 3 февраля, 2010 Перехожу на 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? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 3 февраля, 2010 Жалоба Поделиться Опубликовано 3 февраля, 2010 core_st: pobj - указатель на переменную типа QObject. Он тут инициализируется нулем. Ссылка на комментарий Поделиться на другие сайты Поделиться
ХельгаZ Опубликовано 4 февраля, 2010 Жалоба Поделиться Опубликовано 4 февраля, 2010 Здравствуйте! Это задачка по Паскалю из моей контрольной (я на 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. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 4 февраля, 2010 Жалоба Поделиться Опубликовано 4 февраля, 2010 (изменено) прошупомощи: Простейший путь сокращения - сделай вместо процедур с оператором case массивы строк. Например, объяви вместо процедуры decyatki в начале программы const decyatki:array[0..9]of string[12]=(' ',' ','двадцать ','тридцать ','сорок ','пятьдесят ','шестьдесят ','семьдесят ','восемьдесят ','девяносто '); и вместо decyatki(a) вызывай write(decyatki[a]) И так же с остальными процедурами, выбирающими нужное слово. Изменено 4 февраля, 2010 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 4 февраля, 2010 Жалоба Поделиться Опубликовано 4 февраля, 2010 Тролль: лучше многомерный, так будет ещё короче. А можно все слова засунуть в текстовый файл и считать :D PS Преподаватель - извращенец :blush2: Ссылка на комментарий Поделиться на другие сайты Поделиться
ХельгаZ Опубликовано 4 февраля, 2010 Жалоба Поделиться Опубликовано 4 февраля, 2010 Тролль , Indomito: спасибо большое, я поняла :blush2: :D Ссылка на комментарий Поделиться на другие сайты Поделиться
Radu Опубликовано 9 февраля, 2010 Жалоба Поделиться Опубликовано 9 февраля, 2010 Помогите плз создать калькулятор в C++ Builder 6.0 Вот что у меня получилось , нужно еще добавить "+" , "-" , "*" , "/" , "=" , "c" Исходник - http://rapidshare.com/files/348309700/Calculator.rar.html http://rapidshare.de/files/49126248/Calculator.rar.html Ссылка на комментарий Поделиться на другие сайты Поделиться
C1keu Опубликовано 10 февраля, 2010 Жалоба Поделиться Опубликовано 10 февраля, 2010 Помогите пожалуйста решать задание.Си++ Написать и протестировать функцию для решения следующей задачи. Найти наименьшую из нечетных компонент вектора и наибольшую из четных компонент. Если они имеют разные знаки, то вычислить сумму элементов вектора, а в противном случае определить произведение положительных элементов вектора Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 10 февраля, 2010 Жалоба Поделиться Опубликовано 10 февраля, 2010 (изменено) C1keu: #include<iostream>using namespace std;float fun(float b[], int n){int i,t=1; float min,max,r;min=b[0]; for(i=0;i<n;i+=2)if(b[i]<min)min=b[i]; max=b[1]; 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[100]; 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();} Считаю, что в векторе (не в программе) элементы нумеруются с единицы, то есть нечетные элементы вектора - первый, третий и так далее. В задании также не сказано, что должно получаться, если при вычислении произведения положительных элементов таковых не оказывается. В программе в этом случае будет выведен нуль. Изменено 10 февраля, 2010 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
C1keu Опубликовано 11 февраля, 2010 Жалоба Поделиться Опубликовано 11 февраля, 2010 C1keu: #include<iostream>using namespace std;float fun(float b[], int n){int i,t=1; float min,max,r;min=b[0]; for(i=0;i<n;i+=2)if(b[i]<min)min=b[i]; max=b[1]; 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[100]; 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 написать.\ Спасибо за помощь и труд! :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 февраля, 2010 Жалоба Поделиться Опубликовано 11 февраля, 2010 C1keu: но там есть про разные знаки,это значит что нужно начать например с -13?13 - чертова дюжина, с нее начинать не рекомендуется :blink: Откуда взялось это число? В условии сказано: "Найти наименьшую из нечетных компонент вектора и наибольшую из четных компонент. Если они имеют разные знаки..." Так и сделано. Не важно что получится при произведении,нужно просто вывести результат который получется от произведения найденных компонент вектора.А если найдено 0 компонент, что выводить? Я вывожу 0. можна пожалуйсто под Borland написатьТут нет ничего специально для какого-то компилятора. На всякий случай проверил в Борландовском, работает. P.S. Не надо целиком цитировать в ответе предыдущее сообщение. И так ясно, о чем речь. Если вопрос или замечание по какой-то части сообщения, можно процитировать именно ее. Ссылка на комментарий Поделиться на другие сайты Поделиться
C1keu Опубликовано 11 февраля, 2010 Жалоба Поделиться Опубликовано 11 февраля, 2010 Хорошо,насчет целиком понял. Наверно надо было сразу сказать,что код нужно написать для старенького Borland 3.1 А то он данный код не принимает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 февраля, 2010 Жалоба Поделиться Опубликовано 11 февраля, 2010 C1keu: код нужно написать для старенького Borland 3.1А то он данный код не принимает. Ну и переделал бы сам - тут-то уж и делать нечего. Надо заменить в начале программы строки #include<iostream> using namespace std; на #include<iostream.h> #include<stdio.h> Полезно еще убрать один из двух операторов getchar(); в конце программы - из-за него в 3.1 придется нажимать Enter дважды, чтобы выйти из программы. Ссылка на комментарий Поделиться на другие сайты Поделиться
C1keu Опубликовано 12 февраля, 2010 Жалоба Поделиться Опубликовано 12 февраля, 2010 Спасибо,понятно. Но 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();} Можно тоже самое только под борланд. Я просто только начал изучать(в вузе с него) А до этого, не изучал никакой язык. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 февраля, 2010 Жалоба Поделиться Опубликовано 12 февраля, 2010 (изменено) 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[0]; for(i=0;i<n;i+=2)if(b[i]<min)min=b[i]; max=b[1]; 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[100]; 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 идти (конечно, если он правильно установлен...). Изменено 12 февраля, 2010 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти