Гость Хексем Опубликовано 10 мая, 2009 Жалоба Поделиться Опубликовано 10 мая, 2009 Реализация - компилятор, библиотеки, интегрированная среда какого-то одного разработчика. Например, реализация Microsoft - Visual C++, реализация фирмы Borland - Borland C++ Builder, реализация фирмы Intel - Intel C++, реализация фирмы Watcom (впоследствии Sybase) - Watcom C++, Open Source проект - wxDev-C++... А версия - это номер очередного варианта какой-либо реализации, например Borland C++ Builder 6 - шестая версия реализации C++ фирмой Borland. Постепенно язык изменялся, вводились новые средства, но, естественно, каждая фирма старалась для совместимости сохранить и то устаревшее, что у нее было в прежних версиях - было бы нехорошо, если бы клиент, купивший новую версию, не мог использовать с ней свои старые исходные коды программ. А в отношении библиотек разных фирм - они сближались, но все же различия остаются, особенно если использовать старые варианты библиотек. К примеру, недавно на форуме проскочила задача с переводом целого числа в строку - у Borland это функция itoa, у Microsoft - _itoa. А библиотеки визуальных компонентов у Borland и Microsoft совсем разные -- VCL и MFC. Спасибо. Т.к. ЭТУ тему закрыли, напишу здесь: первую задачу для интереса попробовал решить, вроде решил, но мне кажется, что слишком мудрено :) Взгляните пожалуйста, и скажите свои мысли по поводу данной реализации... #include <iostream.h>#include <time.h>int main(){srand(unsigned(time(NULL)));int N=100, n, a[N];cout << "Enter dimension: " << endl << "n = "; cin >> n; //Заполняем массив с учетом указанной размерности//Заполняем из диапазона [-100; 100]for (int i=0; i<n; i++){a[i]=rand()%201-100;}//Выводим массивcout << "\nMessive:\n\n";for (int i=0; i<n; i++){cout << a[i] << " ";}//Выводим без нулейcout << "\n\nMessive without zero:\n\n";for (int i=0; i<n; i++){ if(a[i])cout << a[i] << " ";}//Массив с добавлением элементаcout << "\n\nMessive with addition:\n\n"; bool flag = true;for (int i=0; i<n; i++){ if((a[i]%2) && flag)cout << a[i] << " ";else { if(flag) { if(!i) cout << a[i] << " " << a[i]+2 << " "; else cout << a[i] << " " << a[i-1]+2 << " "; flag = false; } else cout << a[i] << " ";}} system("pause"); return (0);} Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 10 мая, 2009 Жалоба Поделиться Опубликовано 10 мая, 2009 AutoGen: У меня Delphi не установлен. Но с выводом у тебя определенно косяк - после else вывод в ListBox и s:=s- перепутаны местами, к тому же в Listbox выдаются не цифры, а числа (надо было использовать IntToStr). Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 10 мая, 2009 Жалоба Поделиться Опубликовано 10 мая, 2009 (изменено) Хексем: Т.к. ЭТУ тему закрылиОна была продублирована автором в "Заказы...", где ей и было правильное место, поэтому ее и закрыли. Взгляните пожалуйста, и скажите свои мысли по поводу данной реализации...Ну, ИМХО "это был ответ в стиле Бадера: очень веско, но на полметра мимо" (Стругацкие). Написано хорошо, но не о том. Условие было таким 1)Сформировать одномерный массив целых чисел, используя датчик случайных чисел.2)Распечатать полученный массив. 3)Удалить все элементы равные 0. 4)Добавить после первого четного элемента массива элемент со значением M[ I-1 ]+2. 5)Распечатать полученный массив. При уменьшении или увеличении длины массива необходимо изменять его реальную длину. А в программе вместо запрошенного изменения самого массива сделано изменение контрольной распечатки его элементов :)P.S. По поводу стиля: сомневаюсь, что for (int i=0; i<n; i++) { cout << a << " "; } удобнее читать, чем for (int i=0; i<n; i++) cout << a << " "; Я вообще стараюсь по возможности сокращать число строк, пока это не противоречит здравому смыслу: по горизонтали я читаю быстрее, чем по вертикали, и смотреть, что не в порядке в цикле, начало которого двумя экранами выше завершения, неудобно. Лучше, когда перед глазами сразу побольше текста. И лишние скобки также обычно не прибавляют понятности. Изменено 10 мая, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 12 мая, 2009 Жалоба Поделиться Опубликовано 12 мая, 2009 Здраствуйте. Пожалуйста, у кого есть пример копировани в буфер и вставки из буфера. Только не отправляйте в поисковики. Искал все что связано с ClipBoard. Но примера для понимания так и не нашел. Нужно копировать данные из StaticText в буфр обмена и производить вставку из буфера обмена в StaticText Ссылка на комментарий Поделиться на другие сайты Поделиться
Mike497 Опубликовано 12 мая, 2009 Жалоба Поделиться Опубликовано 12 мая, 2009 Здравствуйте! У меня проблема: написал программу по паскалю на базы данных, теперь необходимо разработать так называемую "защиту от дурака", как вы наверняка знаете, защиту от некорректного пользовательского ввода. Подскажите, какими процедурами/функциями/директивами пользоваться, чтобы проверить следующее: 1)существует ли запрашиваемый файл на диске, если нет=>вывести соответствующее сообщение;2)корректно ли пользователь ввёл тип запрашиваемой информации (в частности, в программе необходим ввод целого числа, но, если вводится строка, символ, вещественное число и т.д.=>вывести соответствующее сообщение о неправильном вводе). Признателен за любую помощь... Ссылка на комментарий Поделиться на другие сайты Поделиться
Zender Опубликовано 12 мая, 2009 Жалоба Поделиться Опубликовано 12 мая, 2009 Здравствуйте!! Помогите помогите пожалуйста с решением задачи в Turbopascal 7.0 Необходимо в исходной строке a$ определить и вывести слова, в которых нет повторяющихся букв. :blush2: Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 мая, 2009 Жалоба Поделиться Опубликовано 12 мая, 2009 (изменено) Zender: При чем тут обозначение a$? Содрали условие из задачек по Бейсику, там имена строк проштампованы знаком доллара, а Pascal родом из Европы, он такого не допускает :blush2: var t:string; i,j,k:integer; p:set of char; b:boolean;beginwrite('String? '); readln(t); k:=0; t:=t+' ';for i:=1 to length(t) do if t[i]>'@' then inc(k) elsebegin if k<>0 then begin b:=true; p:=[]; for j:=i-k to i-1 do begin if t[j]in p then b:=false; include(p,t[j]) end; if b then begin for j:=i-k to i-1 do write(t[j]); writeln end; k:=0 endend;readlnend. Изменено 12 мая, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Zender Опубликовано 12 мая, 2009 Жалоба Поделиться Опубликовано 12 мая, 2009 Zender: При чем тут обозначение a$? Содрали условие из задачек по Бейсику, там имена строк проштампованы знаком доллара, а Pascal родом из Европы, он такого не допускает :blush2: var t:string; i,j,k:integer; p:set of char; b:boolean;beginwrite('String? '); readln(t); k:=0; t:=t+' ';for i:=1 to length(t) do if t[i]>'@' then inc(k) elsebegin if k<>0 then begin b:=true; p:=[]; for j:=i-k to i-1 do begin if t[j]in p then b:=false; include(p,t[j]) end; if b then begin for j:=i-k to i-1 do write(t[j]); writeln end; k:=0 endend;readlnend. Спасибо огромное!!!! :blush2: Очень признателен :bleh: Ссылка на комментарий Поделиться на другие сайты Поделиться
2hard4me Опубликовано 13 мая, 2009 Жалоба Поделиться Опубликовано 13 мая, 2009 Всем доброго времени суток! Помогите плз с реализацией задачи на Паскале. Модификацией простого метода Гаусса является метод Жордана, в котором исключение очередного неизвестного производится не только из нижележащих уравнений системы, но и из вышележащих. Очевидно как можно модифицировать метод Жордана в метод Жордана с выбором максимального элемента (по столбцу или матрице). Нужно написать програму по методу Гаусса-Жордана. Кто знает, отзовитесь плз. Заранее спсб. с уважением, Сергей Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 14 мая, 2009 Жалоба Поделиться Опубликовано 14 мая, 2009 2hard4me: Опять стандартный алгоритм. Прикладываю реализацию для Паскаля неизвестного мне А.Савенко, слегка переделанную мной для произвольной размерности системы (у Савенко было фиксированное число уравнений). Проверил - работает. Возможно, понадобится еще подкорректировать кодировку шрифта подсказок (у Савенко было для DOS). Jordan.zip Jordan.zip Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Ragnos Опубликовано 14 мая, 2009 Жалоба Поделиться Опубликовано 14 мая, 2009 Люди помогите плиз прогу доделать Прога работает, но нужно сделать так чтобы когда вводиш какоенибуть слово она выводила все звонкие согласные, которые входят в каждое нечетное слово и не входят ни в одно четное слово, в алфавитном порядке Вот полное задание В алфавитном порядке вывести все звонкие согласные, которые входят в каждое нечетное слово и не входят ни в одно четное слово. uses crt; Const voiced = ['b', 'v', 'g', 'd', 'j', 'z', 'l', 'm', 'n', 'r']; type char_set = set of char; var s: string; chet, nechet, current: char_set; i: byte; word_num: integer; { nomer tekushego slova } Procedure Print(const M: char_set); Var k: char; Begin writeln; readln(s); if s=''then S:=' morkovka goroh kapusta mozambezi krysha zvezda'; For k:= 'a' to 'z' do if k in M then write (k); writeln; End; Begin nechet := voiced; chet := voiced; Clrscr; writeln('s = '); { tut tvoya dlinnaya stroka :) } Readln (s); i := 1; { nachinaem s pervogo simvola stroki } current := []; { zdes budut hranitsya zvonkie soglasnye iz tekushego slova } word_num := 1; { pervoe slovo - ono i est №1 } { obrabotki oshibok net, budem nadeyatsya, chto vvedeno vse pravilno - tochka zavershaet stroku } While i <= length(s) do begin If s in [',', '.'] then begin { esli doshli do konca slova (ocherednoy simvol ',' ili '.') } if odd(word_num) then begin { to proveryaem, kakov nomer slova } nechet := nechet - current { nechetniy ... znachit, vichitaem bukvi tekushego mnogestva iz nechet } end else begin chet := chet * current; { chetnoe slovo... peremnogaem seti } end; inc(word_num); current := []; { <-- podgotavlivaem vce k obrabotke sleduushego slova } end else begin { eshe v seredine slova, dobavlyaem zvonkie vo mnogestvo current } if s in voiced then include(current, s) End; inc(i); { prodvigaemcya k sleduushemu simvolu } end; { vce, mnogestva gotovi, pechataem... } writeln('chet: '); Print(chet); writeln('nechet: '); print(nechet); Readln; End. Ссылка на комментарий Поделиться на другие сайты Поделиться
2hard4me Опубликовано 14 мая, 2009 Жалоба Поделиться Опубликовано 14 мая, 2009 Тролль, спсб ) кодировка правда несовместима, но по коду разобрался уже, и все понятно! спасибо еще раз! Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 14 мая, 2009 Жалоба Поделиться Опубликовано 14 мая, 2009 Ragnos: Опять? То же задание ты приводил в этом посте, и в следующем я поместил соответствующую программу из 7 строк. 2hard4me: кодировка правда несовместима, но по коду разобрался ужеНе обязательно разбираться по коду. Открой в Word'е, и он сам выберет подходящую (DOS) кодировку, чтобы нормально читать.Или в любом текстовом редакторе, поддерживающем выбор кодировки. Ссылка на комментарий Поделиться на другие сайты Поделиться
Radu Опубликовано 14 мая, 2009 Жалоба Поделиться Опубликовано 14 мая, 2009 Тролль: привет,опять у меня мал. проб. Turbo Pascal Значит,проблема должна генерировать матрицу.Вводим цифры и она показывает матрицу.Проблема в том что матрицы 3х3,2х2 показывает правильно,а другие нет(например 3х2).Помоги пож. найти ошибку. Program matrice; { Programul 4.1. Construirea unei matrice A } Type sir=array[1..100] of real; mat=array[1..10,1..10] of real; Var m,n, {m*n este dimensiunea matricei cerute} i,j,k:integer; {variabile auxiliare} X:sir; {X este un vector cu m*n componente date} A:mat; {Matrice de dimensiune m*n definita de (4.1)} sum:real; {variabila auxiliara; va contine o suma} begin Writeln('Se calculeaza o matrice A de dimensiune m*n'); writeln('dandu-se un vector X cu m*n componente'); write(' Dati numarul liniilor matricei : '); readln(m); {сколько линий в матрице} write(' Dati numarul coloanelor matricei: '); readln(n); {сколько колонок} writeln(' Dati termenii sirului X'); for i:=1 to m*n do begin write('x(',i,')=?'); readln(x) end; for i:=1 to m do for j:=1 to n do begin sum:=0; for k:=1 to i*j do sum:=sum+x[k]; a[i,j]:=sum/(i*j-i+1) end; writeln; writeln; Writeln(' Matricea rezultat este:'); writeln; for i:=1 to m do begin for j:=1 to n do write(a[i,j]:8:1); writeln end; readln end. i Уведомление:Artur88: Познакомьтесь с тегом Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 14 мая, 2009 Жалоба Поделиться Опубликовано 14 мая, 2009 Radu: Матрицы печатаются с правильной размерностью. А чем они заполнены, это считается по довольно странной формуле, но "своя рука - владыка", кроме тебя, никто не знает, что ты хотел посчитать - может быть, даты ацтекского календаря... :D Не берусь угадать. Ссылка на комментарий Поделиться на другие сайты Поделиться
merda_inter Опубликовано 16 мая, 2009 Жалоба Поделиться Опубликовано 16 мая, 2009 Здраствуйте. Очень прошу написать мне 2 вроде бы легкие программы в Turbo Pascale'е, до которых мой мозг додуматься не может. Задачи на обработку массивов. 1) Дан массив из N элементов. Вычислить и распечатать все попарные суммы элементов массива. 2) Дан массив А(MxN). Заменить единичными значениями ту строку и тот столбец, на пересечении которых находится минимальный элемент. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 16 мая, 2009 Жалоба Поделиться Опубликовано 16 мая, 2009 (изменено) merda_inter: var i,j,n:integer; a:array[1..100]of real;beginwrite('N ? '); readln(n);for i:=1 to n do begin write('a[',i,'] ? '); readln(a[i]) end;for i:=1 to n-1 do for j:=i+1 to n do writeln('a[',i,']+a[',j,']=',a[i]+a[j]:10:4);readlnend. var i,j,k,l,m,n:integer; a:array[1..20,1..20]of real; min:real;beginwrite('M ? '); readln(m); write('N ? '); readln(n);for i:=1 to m do for j:=1 to n do begin write('a[',i,',',j,'] ? '); readln(a[i,j]) end;for i:=1 to m do begin for j:=1 to n do write(a[i,j]:10:4); writeln end; writeln;min:=a[1,1]; for i:=1 to m do for j:=1 to n do if a[i,j]<=min then begin min:=a[i,j]; k:=i; l:=j end; for i:=1 to m do a[i,l]:=1; for j:=1 to n do a[k,j]:=1;for i:=1 to m do begin for j:=1 to n do write(a[i,j]:10:4); writeln end; writeln;readlnend. Изменено 16 мая, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Kentri Опубликовано 16 мая, 2009 Жалоба Поделиться Опубликовано 16 мая, 2009 Gомогите пожалуйста мне на завтра нада, у меня ничего не выходит "Дано натуральное число N. Вычислить произведение первых N сомножителей 1/2*3/4*5/6*... " мне нада в С++ пожалуйста Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 16 мая, 2009 Жалоба Поделиться Опубликовано 16 мая, 2009 (изменено) Kentri: #include <stdio.h>main(){int n; float s=1; printf("N ? "); scanf("%d",&n);for(int i=1;i<=2*n;i++)if(i%2)s*=i;else s/=i; printf("%f",s);getchar(); getchar(); } Изменено 16 мая, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Kentri Опубликовано 16 мая, 2009 Жалоба Поделиться Опубликовано 16 мая, 2009 Спасибо огромное Ссылка на комментарий Поделиться на другие сайты Поделиться
Zender Опубликовано 17 мая, 2009 Жалоба Поделиться Опубликовано 17 мая, 2009 Можете пожалуйста снова помочь с решением задачки в Turbo pascal: Постройит совокупность N равносторонних треугольников с общим центром. Заранее благодарен) :g: Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 17 мая, 2009 Жалоба Поделиться Опубликовано 17 мая, 2009 Zender: uses Graph,CRT;const u=2/3*pi; x=320; y=240; var i,j,s,n,GrDriver,GrMode:integer;beginWrite('N ? '); ReadLn(n);GrDriver:=VGA; GrMode:=VGAHi; InitGraph(GrDriver,GrMode,'\TP\BGI');if GraphResult<>GrOk then begin WriteLn('Graphic driver?'); i:=Ord(ReadKey); Halt end;SetBkColor(1); s:=200 div n; for i:=1 to n do for j:=0 to 2 doline(x+round(s*i*cos(j*u)),y+round(s*i*sin(j*u)),x+round(s*i*cos((j+1)*u)),y+round(s*i*sin((j+1)*u)));i:=Ord(ReadKey)end. Ссылка на комментарий Поделиться на другие сайты Поделиться
-=vitek=- Опубликовано 17 мая, 2009 Жалоба Поделиться Опубликовано 17 мая, 2009 помогите пожалуйста, в qbasic проги написать 1. сформировать по исходной строке новую строку по правилу: в каждом слове перенести первую букву в конец слова 2. по исходной строке определить количество слов, заканчивающихся заданным символом вывести строку и результаты ее анализа заранее спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
koketka15 Опубликовано 17 мая, 2009 Жалоба Поделиться Опубликовано 17 мая, 2009 ребята помогите, пожалуйста! срочно! ко вторнику! в паскале: окружность на плоскости задана координатами x, y, r(все значения формируются случайным образом). из 20 окружностей показать те, которые не пересекают другие. Ссылка на комментарий Поделиться на другие сайты Поделиться
Kentri Опубликовано 17 мая, 2009 Жалоба Поделиться Опубликовано 17 мая, 2009 Помогите с задачей. Ввести последовательность символов,заканчивающуюся '@'. Распечатать только те из них которые не являются буквой А (с учетом верхнего/нижнего регистров) Нада через С++ Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти