sakol18 Опубликовано 19 марта, 2008 Жалоба Поделиться Опубликовано 19 марта, 2008 sakol18: Соберись с мыслями... На C++ или на Паскале? Обучение чтению? :g: курсовик задали на паскале, а обучаущийся должен ввести число уже переведенное в восмеричную или шестнадцатиричную системы счисления, в зависимости от того, какую систему счисления он выберет в на чале обучения, т.е. программа должна представить обучаемому число двоичное, потом выбор системы в которую он должен перевести это число, потом обучаущийся должен ввести ответ(переведенное двоичное число), а программа должна его проверить... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 20 марта, 2008 Жалоба Поделиться Опубликовано 20 марта, 2008 (изменено) Однако... Раньше просили написать задачки. Теперь - курсовики. Скоро появятся просьбы написать дипломы и диссертации... :sm(100): program Bin2OctHex;uses crt;const o:array[0..15]of string[4]= ('0','1','10','11','100','101','110','111','1000','1001','1010','1011','1100','1101','1110','1111');var c:char; p,r,y,n:byte;beginTextBackground(lightgreen); ClrScr;WriteLn('1. Developer');WriteLn('2. Help me!');WriteLn('3. Start!');WriteLn('4. About the program');WriteLn('5. Exit');WriteLn; Write('Your choice? ');repeat c:=ReadKey; WriteLn; case c of'1':begin WriteLn('Troll ',#01); Write('Your choice? ') end;'2':begin WriteLn('Think!'); Write('Your choice? ') end;'3':break;'4':begin WriteLn('Masterpiece num. 1 !!!'); Write('Your choice? ') end;'5':Exit;else begin WriteLn('No such variant!'); Write('Your choice? ') end enduntil false;TextMode(font8x8); TextBackground(blue); TextColor(yellow); ClrScr; y:=0; n:=0;repeat Write('Scale of notation (8/h): '); c:=ReadKey; WriteLn© until(c='8')or(c='h')or(c='H');if c='8' then r:=8 else r:=16; randomize;WriteLn(' Press the right key... '); WriteLn(' (for exit press q)'); WriteLn;repeat p:=random®; Write(o[p]:5,' '); if p>9 then p:=p+7; c:=ReadKey; TextColor(white); Write(c,' '); if upcase©='Q' then break; if upcase©=char(p+48) then begin TextColor(lightgreen); WriteLn(' Yes!'); inc(y) end else begin TextColor(lightred); WriteLn(' No!'); inc(n) end; TextColor(yellow);until false;WriteLn; WriteLn('Statistic Yes:',y:4,' No:',n:4); WriteLn('Press Enter...'); ReadLnend. Так как для перевода в восьмеричную или шестнадцатеричную систему двоичное число разбивается на группы из трех или соответственно четырех двоичных цифр и каждая такая группа переводится в одну цифру соответствующей системы независимо от других групп, вполне достаточно тренироваться на таких группах. P.S. Названия пунктов меню и информацию в них можно подкорректировать :) Изменено 20 марта, 2008 пользователем Тролль Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
sakol18 Опубликовано 22 марта, 2008 Жалоба Поделиться Опубликовано 22 марта, 2008 Тролль, огромное тебе спасибо!!!!!!!!!!!!!!!! Даже и не знаю, что бы я без тебя делал! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
loveizz Опубликовано 25 марта, 2008 Жалоба Поделиться Опубликовано 25 марта, 2008 Здравствуйте, помогите пожалуйста написать программу на с++.. 1. Описать структуру с именем WORKER, содержащую следующие поля: • NAME — фамилия и инициалы работника; • POS — название занимаемой должности; • YEAR — год поступления на работу. 2. Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив TABL, состоящий из десяти структур типа WORKER; записи должны быть размещены по алфавиту. • вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры; • если таких работников нет, вывести на дисплей соответствующее сообщение. Заранее огромное спасибо!! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 26 марта, 2008 Жалоба Поделиться Опубликовано 26 марта, 2008 (изменено) loveizz: #include <iostream>#include <string.h>#include <time.h>using namespace std;main(){struct WORKER{char NAME[20],POS[20];unsigned YEAR;}TABL[10],T;int i,j,yt,k=0,los; char Name[20];time_t rawtime; struct tm *timeinfo;time(&rawtime); timeinfo=localtime(&rawtime);yt=atoi(asctime(timeinfo)+strlen(asctime(timeinfo))-6);for(i=0;i<10;i++){cout<<endl<<"Name? "; cin.getline(TABL[i].NAME,20);if(!strlen(TABL[i].NAME))break;cout<<"Post? "; cin.getline(TABL[i].POS,20);cout<<"Year (YYYY)? "; cin>>TABL[i].YEAR;cin.getline(Name,20); k++;};for(i=0;i<k;i++)for(j=0;j<k-i-1;j++)if(strcmp(TABL[j].NAME,TABL[j+1].NAME)>0) {T=TABL[j];TABL[j]=TABL[j+1];TABL[j+1]=T;}cout<<endl<<"Length of service? "; cin>>los; j=0; for(i=0;i<k;i++)if(yt-TABL[i].YEAR>los) {cout<<endl<<strtok(TABL[i].NAME," \t"); j=1;}if(!j)cout<<endl<<"No such person!"; cout<<endl<<endl; getchar(); getchar();} Изменено 26 марта, 2008 пользователем Тролль Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
loveizz Опубликовано 26 марта, 2008 Жалоба Поделиться Опубликовано 26 марта, 2008 Спасибо огромное!!! :) очень выручили!!! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
flomaster Опубликовано 26 марта, 2008 Жалоба Поделиться Опубликовано 26 марта, 2008 Помогите горю по полной!!!!! Описать запись с именем STUDENT, содержащую следующие элементы: - NAME - фамилия и инициалы (символьный массив); - GROOP - номер группы (тип INT); - SES - успеваемость - массив из 5-и элементов (тип INT). Написать программу, выполняющую следующие действия: 1 - ввод с клавиатуры данных в массив STUD1, состоящий из 10-и элементов типа STUDENT; 2 - вывод на экpан: - всей инфоpмации, размещенной по возрастанию среднего балла; - вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5; если таких студентов нет - вывести соответствующее сообщение. ой забыл на паскале заранее спасибо Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 26 марта, 2008 Жалоба Поделиться Опубликовано 26 марта, 2008 Точно на Паскале? Похожие задачи народ просил на C++ решать... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
anfalochka Опубликовано 27 марта, 2008 Жалоба Поделиться Опубликовано 27 марта, 2008 помогите Посчитать сумму четных цыфр числа. Сформировать число наоборот. ввиде блок схемы!!!!на Паскале!!!!ООООчень надо!!!1 :g: Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 марта, 2008 Жалоба Поделиться Опубликовано 27 марта, 2008 (изменено) anfalochka: var s:string; i,l,a:byte; w:longint; c:char; begin ReadLn(w); str(w,s); a:=0; l:=length(s); for i:=1 to length(s)div 2 do begin c:=s;s:=s[l-i+1];s[l-i+1]:=c end; for i:=1 to length(s)div 2 do a:=a+ord(s[2*i])-48; WriteLn('sum=',a); WriteLn(s); ReadLn end. В числе 10, например, считаю, 1 стоит на четном месте. Изменено 27 марта, 2008 пользователем Тролль Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
flomaster Опубликовано 27 марта, 2008 Жалоба Поделиться Опубликовано 27 марта, 2008 да на паскале точно Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 марта, 2008 Жалоба Поделиться Опубликовано 27 марта, 2008 (изменено) flomaster: type STUDENT=record NAME:string[25]; GROOP:integer; SES:array[1..5]of integer end;var STUD1:array[1..10]of STUDENT; S:STUDENT; u:array[1..10]of real; i,j,n:word; b,b4,b5:boolean;begin n:=0; for i:=1 to 10 do begin Write('Name: ');ReadLn(STUD1[i].NAME); if STUD1[i].NAME='' then break;inc(n); Write('Group: ');ReadLn(STUD1[i].GROOP); Write('Balls(5): '); for j:=1 to 5 do Read(STUD1[i].SES[j]); ReadLn; WriteLn; end; WriteLn; for i:=1 to n do begin u[i]:=0; for j:=1 to 5 do u[i]:=u[i]+STUD1[i].SES[j]; u[i]:=u[i]/5 end;for i:=1 to n do for j:=1 to n-i do if u[j]>u[j+1] then begin S:=STUD1[j]; STUD1[j]:=STUD1[j+1]; STUD1[j+1]:=S end;WriteLn('All students');for i:=1 to n do WriteLn(STUD1[i].GROOP:30,STUD1[i].SES[1]:2,STUD1[i].SES[2]:2, STUD1[i].SES[3]:2,STUD1[i].SES[4]:2,STUD1[i].SES[5]:2,#13,STUD1[i].NAME);WriteLn; WriteLn('The students having the balls 4 and 5'); b:=true; for i:=1 to n do begin b4:=false; b5:=false; for j:=1 to 5 dobegin if STUD1[i].SES[j]=4 then b4:=true; if STUD1[i].SES[j]=5 then b5:=true end; if b4 and b5 then begin b:=false; WriteLn(STUD1[i].GROOP:25,#13,copy(STUD1[i].NAME,1,pos(' ',STUD1[i].NAME+' ')-1)) end end;if b then WriteLn('Nobody has the balls 4 and 5');ReadLnend. Оценки студента при вводе разделяются пробелами. Чтобы вводить данные меньше чем десяти студентов, можно закончить ввод списка введением вместо фамилии очередного студента пустой строки, то есть сразу нажать клавишу Enter. Кстати, условие сформулировано, похоже, человеком, не владеющим русским языком - во всяком случае, требование вывода списка студентов, "имеющих оценки 4 и 5", выглядит странно. Однако программа сделана в соответствии с условием - если у студента есть оценки 4 и 5, его фамилия выводится, но если у него круглые пятерки, он в список не попадет - у него нет ни одной четверки. Зато студент с тремя двойками, четверкой и пятеркой - попадет. Если имелись в виду студенты-отличники, то в условии вместо "имеющих оценки 4 и 5" должно было бы стоять "имеющих оценки ТОЛЬКО 4 ИЛИ 5". На всякий случай - если понадобится, чтобы программа выводила список отличников, в ней нужно b,b4,b5:boolean; заменить на b,bb:boolean; и b4:=false; b5:=false; for j:=1 to 5 do begin if STUD1.SES[j]=4 then b4:=true; if STUD1.SES[j]=5 then b5:=true end; if b4 and b5 then заменить на bb:=true; for j:=1 to 5 do if STUD1.SES[j]<4 then bb:=false; if bb then P.S. Да, забыл было, что фамилии в списке "4 и 5" должны выводиться без инициалов - подправил это. Изменено 27 марта, 2008 пользователем Тролль Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
flomaster Опубликовано 28 марта, 2008 Жалоба Поделиться Опубликовано 28 марта, 2008 Спасибо огромное выручил :) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Хиросима Опубликовано 3 апреля, 2008 Жалоба Поделиться Опубликовано 3 апреля, 2008 Тут такое дело.. У друга горит курсовая, нужно написать задачу на C Задача: Інтерполяція сплайнами. Метод кубічного сплайну. За відомими деякими значеннями х і у знайти значення у по введеному х. Друг будет ОЧЕНЬ благодарен за любую помощь! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 3 апреля, 2008 Жалоба Поделиться Опубликовано 3 апреля, 2008 Тут есть готовая программа интерполяции кубическими сплайнами и описание к ней. Единственное отличие, что программа считает сразу для нескольких X-ов в интервале интерполяции и выводит результат в файл, это надо заменить на ввод X с клавиатуры для одной точки и вывод на экран. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Хиросима Опубликовано 4 апреля, 2008 Жалоба Поделиться Опубликовано 4 апреля, 2008 (изменено) Тут есть готовая программа интерполяции кубическими сплайнами и описание к ней. Единственное отличие, что программа считает сразу для нескольких X-ов в интервале интерполяции и выводит результат в файл, это надо заменить на ввод X с клавиатуры для одной точки и вывод на экран. Передают большое спасибо... :) И так прошения №2 Скласти програму, яка обробляє текстовий файл, і виконуючи перетворення відповідно до індивідуального завдання, створює новий текстовий файл який містить відповідно кореговані рядки. При цьому мають бути виконані наступні умови: 1. Ім’я вхідного файлу має бути параметром програми. 2. Файл має містити не менш 20 рядків тексту. 3. Довжина рядка у тексті 80 символів. 4. Вважати, що слова розділяються пропусками, а розділові знаки розглядати як букви. 5. Програму слід розробляти, виходячи з припущення, що увесь текст з файлу не може бути розміщений в оперативній пам’яті. А вот и само условие: Розмістити текст у кілька стовпчиків, так щоб n-е слово i-го рядка розміщувалося під n-им словом i+1-го рядка. P.S. Написать нужно на C, и желательно на сегодня.. :) :) i Уведомление: P.P.S. Настоятельно рекомендую переводить подобные ТЗ на русский... Скорее помогут. Изменено 4 апреля, 2008 пользователем Ray Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Violina Опубликовано 6 апреля, 2008 Жалоба Поделиться Опубликовано 6 апреля, 2008 Добрый день! помогите пожалуйста, мне нужно составить подпрограмму, которая в матрице Y(m,n) меняет местами 1-й и k-й столбец (1<m). C помощью подпрограммы поменять местами первый и последний столбцы матриц A(12,9), C(7,11), и третий и пятый столбц матрицы B(8,15). Исходные и преобразованные матрицы вывести на экран дисплея. Элементы входных матриц вычисляются по формулам: A(c индексом i,j)=tg(j)+e^cos(i); B(c индексом i,j)=sin(3.2j+4.2)+e^tg(1.5i); C(c индексом i,j)=cos(12.4j+1). Заранее спасибо! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 6 апреля, 2008 Жалоба Поделиться Опубликовано 6 апреля, 2008 Violina: А на каком языке? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Violina Опубликовано 6 апреля, 2008 Жалоба Поделиться Опубликовано 6 апреля, 2008 Violina: А на каком языке? В Delphi Я в принципе поняла что нужно сделать - тоесть 2 стринггрида и 4 эдита - на баттон1 стрингрид1 заполняется рандомом - в 2-х пишем кол-во строк и столбцов - при нажатии на баттон2 в стринггида 2 вписывается таже матрица - только с поменеными местами 2 столбца - номера которых мы пишем в эдитах 3 и 4 - на баттонах 3-5 стрингрид заполняется по сообтветствующим формулам - на батон3 - по формуле массива а и так далее - через те же эдиты идет то же... вот такая должна быть прога вроде.. вот понять - поняла, а сделать не могу... :) Помогите мне очень прошу! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 6 апреля, 2008 Жалоба Поделиться Опубликовано 6 апреля, 2008 (изменено) Delphi у меня, к сожалению, не установлен, так что помочь могу только вариантом программы на имеющемся под рукой Turbo Pascal, пренебрегая красотой вывода, поскольку он в Delphi все равно выполняется иначе. А зачем заполнения рандомом? Ни ввода (зачем эдиты?), ни рандомов программе не нужно. Заполняем исходные матрицы по данным формулам, выводим таблицей или таблицами. По нажатию клавиши меняем столбцы в матрицах, как задано в условии задачи, и снова выводим их. Или, если поместишь все это на экране в Delphi, то выводим всё сразу. Вообще-то, похоже, "трудность" задачи состояла в обмене 3 и 5 столбцов матрицы процедурой, меняющей любой столбец только с 1-м. Столь же просто сделать процедуру, меняющую местами любых два столбца, но раз требуют использовать процедуру с 1-м столбцом, для обмена двух произвольных столбцов получается трехходовка, например, для обмена 3<>5: 1<>5, 1<>3, 1<>5. Сделал для примера на обычном Turbo Pascal, благо он у меня сейчас установлен. Все бы выводилось хорошо, если бы не то, что во второй матрице вначале получаются очень большие числа, к тому же у нее большая длина строк, так что результаты первых строк не вывести так, чтобы столбцы было легко сравнивать, во всяком случае в стандартном 80-колоночном окне Turbo Pascal. Поэтому первые строки второй матрицы выводятся кашей чисел без пробелов, как селедки в бочке. Но поскольку это демонстрационный пример, особо думать над выводом не стал. Что столбцы переставились правильно, видно по нескольким последним строкам матрицы. В примере выводится первая матрица и она же с переставленными столбцами, потом, после нажатия Enter - так же вторая, после еще одного нажатия Enter - третья. Небольшое пояснение: так как в Паскале обычные двумерные массивы с разными размерами в процедуру не передать, массивы передаются в процедуру (фактически передается адрес первого элемента массива) и обрабатываются в ней как одномерные, причем нумерация элементов в них идет тогда от нуля. А оформление вывода результатов, за отсутствием у меня Delphi - за тобой. uses crt;procedure colexch(m,n:integer;var d:array of real;l:integer);{ exchange d[,1] and d[,l] }var i,j,k:integer; r:real;begink:=1; for i:=0 to m-1 do begin r:=d[i*n+k-1];d[i*n+k-1]:=d[i*n+l-1];d[i*n+l-1]:=r end end;const am=12;an=9; bm=8;bn=15; cm=7;cn=11;var i,j:integer;a:array[1..am,1..an]of real;b:array[1..bm,1..bn]of real;c:array[1..cm,1..cn]of real;begintextmode(259);for i:=1 to am do for j:=1 to an do a[i,j]:=sin(j)/cos(j)+exp(cos(i));clrscr;for i:=1 to am do begin for j:=1 to an do Write(a[i,j]:8:3); WriteLn end; WriteLn;colexch(am,an,a[1,1],9);for i:=1 to am do begin for j:=1 to an do Write(a[i,j]:8:3); WriteLn end; ReadLn;for i:=1 to bm do for j:=1 to bn do b[i,j]:=sin(3.2*j+4.2)+exp(sin(1.5*i)/cos(1.5*i));clrscr;for i:=1 to bm do begin for j:=1 to bn do Write(b[i,j]:5:2); WriteLn end; WriteLn;colexch(bm,bn,b[1,1],5);colexch(bm,bn,b[1,1],3);colexch(bm,bn,b[1,1],5);for i:=1 to bm do begin for j:=1 to bn do Write(b[i,j]:5:2); WriteLn end; ReadLn;for i:=1 to cm do for j:=1 to cn do c[i,j]:=cos(12.4*j+1);clrscr;for i:=1 to cm do begin for j:=1 to cn do Write(c[i,j]:7:3); WriteLn end; WriteLn;colexch(cm,cn,c[1,1],11);for i:=1 to cm do begin for j:=1 to cn do Write(c[i,j]:7:3); WriteLn end; ReadLn;end. Изменено 6 апреля, 2008 пользователем Тролль Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Violina Опубликовано 7 апреля, 2008 Жалоба Поделиться Опубликовано 7 апреля, 2008 Тролль, спасибо тебе огромное! Сейчас буду пробовать, я уже 3 день с этой задачей мучаюсь.. Спасибки! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Wlad Опубликовано 15 апреля, 2008 Жалоба Поделиться Опубликовано 15 апреля, 2008 Помогите бедному глупому студенту. Требуется написать часы на ассемблере. Вывод - 4 семисегментных индикатора. Часы и минуты, секунд на надо. Формат времени - 24-х часовой. Спасибо. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
itanko Опубликовано 16 апреля, 2008 Жалоба Поделиться Опубликовано 16 апреля, 2008 Помогите бедному глупому студенту. Требуется написать часы на ассемблере. Вывод - 4 семисегментных индикатора. Часы и минуты, секунд на надо. Формат времени - 24-х часовой. Спасибо. Какой ассемблер? 8085 (КР580XX), MSC-51, AVR или просто родной x86 ? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Wlad Опубликовано 19 апреля, 2008 Жалоба Поделиться Опубликовано 19 апреля, 2008 Простите, забыл уточнить. MSC-51 там используется. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
alancor Опубликовано 19 апреля, 2008 Жалоба Поделиться Опубликовано 19 апреля, 2008 Тролль: Delphi у меня, к сожалению, не установлен У меня есть 7-я версия (мы плотно сейчас по ней работаем) всё, как положено. Работает без проблем. Залить на фтп?? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.