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

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


Рекомендуемые сообщения

Помогите, пожалуйста. Никак не получается рекурсия на С++. Задача такая: Оформить в виде рекурсивной функции получение возрастающей последовательности путем удаления, начиная со второго, ненужных элементов. Массив вводится с консоли.

Изменено пользователем Rika23
Ссылка на комментарий
Поделиться на другие сайты

Rika23

#include<iostream>using namespace std;void del(int &n,int *a,int k=1){if(k<n){if(a[k]<=a[k-1]){for(int i=k+1;i<n;i++)a[i-1]=a[i];a[--n]=0;}       else k++; del(n,a,k);}else return;}int main(){int n,*a; cout<<"length of array? "; cin>>n; a=new int[n];cout<<"elements of array? "; for(int i=0;i<n;i++)cin>>a[i];for(int i=0;i<n;i++)cout<<a[i]<<' '; cout<<endl; del(n,a);for(int i=0;i<n;i++)cout<<a[i]<<' '; cout<<endl; delete []a; cin.get();}

P.S. Вообще-то else return; тут носит декоративный характер, можно просто выкинуть и программа будет работать по-прежнему, но для лучшей читаемости кода пусть остается...

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Помогите пожалуйста, написать программу на паскале abc.

Даны натуральное число n, символы s1,..., sn. Известно, что среди данных символов есть хотя бы один, отличный от пробела. Требуется преобразовать последовательность s1,..., sn следующим образом. Удалить группы пробелов, которыми начинается и которыми заканчивается последовательность, а так же заменить каждую внутреннюю группу пробелов одним пробелом. Если указанных групп нет в данной последовательности, то оставить последовательность без изменения.

Безымянный.JPG

post-114802-0-62704800-1353416225_thumb.

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте, помогите пожалуйста написать программу на си или с++.

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

1) выдачу общей очереди;

2) выдачу очереди заданного приоритета;

3) перестройку очередей при изменении приоритета.

Ссылка на комментарий
Поделиться на другие сайты

Wind327

#include<iostream>#include<deque>using namespace std;int main(){deque<int> q[5]; deque<int>::iterator it; int p,n,m,k,ib,ie; bool b=true;do{ cout<<"0 - exit, 1 - input, 2 - output: "; cin>>k; switch(k){ case 1:  cout<<"priority(1..5): "; cin>>p; cout<<"jobnumber : "; cin>>n;  if(p<1||p>5)break;  p--; cout<<endl; m=-1;  for(int i=0;i<5;i++)for(it=q[i].begin();it!=q[i].end();++it) if(n==*it){q[i].erase(it); m=i; break;}  if(p<m)q[p].push_front(n); else q[p].push_back(n); break; case 2:cout<<"priority(1..5 or 0 for all): "; cin>>p; if(p<0||p>5)break;  p--; ib=0; ie=4; if(p!=-1)ib=ie=p;  for(int i=ib;i<=ie;i++)for(it=q[i].begin();it!=q[i].end();++it)cout<<i+1<<' '<<*it<<endl; cout<<endl; break; default: b=false;} }while(b);}

P.S. Пожалуй, есть смысл пояснить, что для изменения приоритета задания номер задания просто вводится снова с другим приоритетом.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Напишите пожалуйста программу на любом языке(желательно Си или Delphi)

К каждому слову в файле добавить через пробел слово перевод (через запрос к пользователю). Выходные данные: текстовый файл Taskname.txt каждая строка которого содержит только одно слово упорядоченное по алфавиту. Исходные данные: текстовый файл Taskname.txt содержит данные согласно заданию.

Ссылка на комментарий
Поделиться на другие сайты

Riki_Tiki_Tavi

#include<stdio.h>#include<string.h>int main(){FILE *f; unsigned i=0,j,k,m;char fin[20]="Taskname.txt",fon[20]="Taskname.txt",s[1000][2][20],t[20];if(!(f=fopen(fin,"r"))){printf("\nThe program can not find the file  \n"); return 1;}while(fscanf(f,"%s",s[i][0])!=EOF){printf("%s ? ",s[i][0]);scanf("%s",s[i][1]);i++;} fclose(f);for(j=1;j<i;j++)for(k=1;k<=i-j;k++)if(strcmp(s[k][0],s[k-1][0])<0)for(m=0;m<2;m++)	{strcpy(t,s[k-1][m]); strcpy(s[k-1][m],s[k][m]); strcpy(s[k][m],t);}f=fopen(fon,"w"); for(j=0;j<i;j++)fprintf(f,"%s %s\n",s[j][0],s[j][1]); fclose(f); return 0;}
Изменено пользователем Тролль
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Riki_Tiki_Tavi

#include<stdio.h>#include<string.h>int main(){FILE *f; unsigned i=0,j,k,m;char fin[20]="Taskname.txt",fon[20]="Taskname.txt",s[1000][2][20],t[20];if(!(f=fopen(fin,"r"))){printf("\nThe program can not find the file  \n"); return 1;}while(fscanf(f,"%s",s[i][0])!=EOF){printf("%s ? ",s[i][0]);scanf("%s",s[i][1]);i++;} fclose(f);for(j=1;j<i;j++)for(k=1;k<=i-j;k++)if(strcmp(s[k][0],s[k-1][0])<0)for(m=0;m<2;m++)	{strcpy(t,s[k-1][m]); strcpy(s[k-1][m],s[k][m]); strcpy(s[k][m],t);}f=fopen(fon,"w"); for(j=0;j<i;j++)fprintf(f,"%s %s\n",s[j][0],s[j][1]); fclose(f); return 0;}

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

Ссылка на комментарий
Поделиться на другие сайты

Тогда попробуй с таким изменением:

#include<stdio.h>#include<string.h>#include<locale.h>#include<windows.h>int main(){FILE *f; unsigned i=0,j,k,m;char fin[20]="Taskname.txt",fon[20]="Taskname.txt",s[1000][2][20],t[20];setlocale(LC_ALL,"Russian");if(!(f=fopen(fin,"r"))){printf("\nThe program can not find the file  \n"); return 1;}while(fscanf(f,"%s",s[i][0])!=EOF){printf("%s ? ",s[i][0]);scanf("%s",s[i][1]);i++;} fclose(f);for(j=1;j<i;j++)for(k=1;k<=i-j;k++)if(strcmp(s[k][0],s[k-1][0])<0)for(m=0;m<2;m++)			{strcpy(t,s[k-1][m]); strcpy(s[k-1][m],s[k][m]); strcpy(s[k][m],t);}f=fopen(fon,"w"); for(j=0;j<i;j++){OemToAnsi(s[j][1],s[j][1]); fprintf(f,"%s %s\n",s[j][0],s[j][1]);}fclose(f); return 0;}
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Недавно наткнулся в интернете на интересную задачу на C/C++:

int i=8, a1, a2;for (a1=a2=1; i>2; a1=(a2+=a1)-a1) i--;

Ответ в a2.

Тот, кто выложил, сказал, что в универе она съела мозг ихнему преподу :)

Изменено пользователем Shadow TH
Ссылка на комментарий
Поделиться на другие сайты

C++ еще и не такое позволяет написать ;)

Тут вычисление выражения в конце заголовка цикла будет сделано 6 раз, пока i не станет равным 2. Каждый раз при этом выполняется a1=(a2+=a1)-a1, то есть а2 увеличивается на а1, а а1 становится равным прежнему а2. Иначе говоря, из единицы делается 6 шагов последовательности Фибоначчи: 1 2 3 5 8 13 21. Получается 21.

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте. Не получается написать программу на С++ про бинарные файлы. Если можно, помогите пожалуйста. Вот условие:

бинарные файлы.rtf

бинарные файлы.rtf

Ссылка на комментарий
Поделиться на другие сайты

Помогите пожалуйста, написать программу на паскале abc.

Дана действительная квадратная матрица порядка 10. в строках с отрицательным элементом на главной диагонали найти - наибольший из всех элементов.

Ссылка на комментарий
Поделиться на другие сайты

Атин

const n=10;var a:array[1..n,1..n]of real; m:real; i,j:integer;beginfor i:=1 to n do begin writeLn('Введите ',n,' элементов ',i,'-й строки, разделяя их пробелами'); for j:=1 to n do read(a[i,j]); end;writeln;for i:=1 to n do begin for j:=1 to n do write(a[i,j]:7:1); writeln end;m:=-maxreal;for i:=1 to n do if a[i,i]<0 then for j:=1 to n do if a[i,j]>m then m:=a[i,j];writeln; writeln(m:0:1); readlnend.

P.S. Для опробования лучше заменить значение n, скажем, на 3 вместо 10, чтобы не вводить сто значений.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Доброго времени суток! Помогите пожалуйста с макросом для powerpoint на VBS. Сам вообще не разбираюсь в этом, на форуме тоже не нашел нужный мне вопрос.

На слайде имеется около 10 квадратов с закругленными краями. Хотелось бы, чтобы после нажатия на квадрат происходил переход на заранее выбранный слайд, а сам квадрат исчезал, оставляя остальные квадраты в целости и сохранности, Для первой задачи планирую просто добавить гиперссылку, а вот второй - активировать через макрос. Офис 2010. Заранее благодарю за ответ.

Ссылка на комментарий
Поделиться на другие сайты

Анютка

На плоскости задано n точек. Точки попарно соединены отрезками. Найти длину наибольшего отрезка.

const nmax=100;var i,j,n:integer; b,d:real; a:array[1..2,1..nmax]of real;beginwrite('n? '); readln(n);for i:=1 to n do begin write('x',i,' y',i,' ? '); readln(a[1,i],a[2,i]) end;d:=0; for i:=1 to n-1 do for j:=i+1 to n do  begin b:=sqr(a[1,i]-a[1,j])+sqr(a[2,i]-a[2,j]); if b>d then d:=b end;writeln(sqrt(d):0:4); readlnend.
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Напишите пожалуйста на С++:

Создать текстовый файл, состоящий из одной строки и содержит слова, разделенные символом пропуска, знаки препинания не применять. Написать программу для подсчета количества слов в таком текстовом файле.

Ссылка на комментарий
Поделиться на другие сайты

Всем привет! Если у кого то есть, скиньте пожалуйста курсовую на тему "Игра Сапер". (Желательно С, С++ или Delphi).

Заранее очень благодарен.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...