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

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


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

konfetka12

#include <fstream>#include <iostream>#include <iomanip>#include <list>#include <cstdlib>#include <ctime>#define li list<int>using namespace std;li create(int);void print(li &);void delitems(li &,int,int);void additems(li &,int);void dellist(li &);void writelist(li &,char*);void readlist(li &,char*);int main(){int n,k,m; char fn[100]="temp.txt"; srand(time(NULL)); cout<< "Create the list with n random numbers: n ? "; cin>>n;li L=create(n); print(L);cout<<"How many items to delete? "; cin>>k;cout<<"Before the items with the number? "; cin>>m; delitems(L,k,m);cout<<"How many items to add to the end? "; cin>>k; additems(L,k); print(L);writelist(L,fn);cout<<"The list will be deleted...\n"; dellist(L); print(L);cout<<"The list will be rebuilded...\n";readlist(L,fn); print(L);cout<<"Press Enter for exit\n";dellist(L); cin.get(); cin.get();}li create(int n){li L; for(int i=0;i<n;i++)L.push_back(rand()%100); return L;}void print(li &L){li::iterator it; if(L.empty())cout<<"The list is empty!\n";    else{cout<<"The list is\n"; for(it=L.begin(); it!=L.end(); it++)cout<<setw(4)<<*it; cout<<endl;}}void delitems(li &L,int k,int m){li::iterator it1,it2; m--; if(k>m)k=m;    it1=it2=L.begin(); advance(it2,m); advance(it1,m-k); L.erase(it1,it2);}void additems(li &L,int k){for(int i=0;i<k;i++)L.push_back(rand()%100);}void dellist(li &L){L.clear();}void writelist(li &L,char *fn){ofstream f(fn);    li::iterator it; for(it=L.begin(); it!=L.end(); it++)f<<' '<<*it; f.close();}void readlist(li &L,char *fn){ifstream f(fn); int m;    while(f.good())f>>m,L.push_back(m); f.close();}

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

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

помогите пожалуйста, я не понимаю что такое идентификатор и как его обработать (((

 

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

как преобразовать слова состоящие из цифр и букв я незнаю((((((((((((((((горе мне горе :cry: )

 

#pragma argsused
#include <cstdlib>
#include <iostream>
#include <string.h>
#include <stdio.h>
 
void Clear(char string[255])
{int i;
for(i=0;i<255;i++)
        {string='\0'; }}
 
int main(int argc, char *argv[])
{char str[255],s[255]="",t[255]="",c;
bool r;
int i=0,j=0;
printf("Enter text>");
gets(s);
strcpy(str,"");                 // êîïèðóåò ñòðîêó
do      {r=false;
do      {c=s;i++;
        if(c>'9'){r=true;       }
        if(c==' '||c=='.'||c=='\0')
        {if(t[0]>'9'){if®
        {strcat(str,t);       // ñîåä ñòðîêè
        // strcat(str," ");
        }}
t[j]='\0';
j=0;
Clear(t);
break;}
else {t[j]=c;j++;}}
while(1);}
while(c!='.'&&c!='\0');
printf("identifiers:\n");
puts(s);
system("PAUSE");
return 0;}
Ссылка на комментарий
Поделиться на другие сайты

Перевожу на русский язык.

Идентификатор - это условное обозначение.

Например, число 666 является идентификатором сама знаешь чего ;))
Поскольку твой преподаватель не служитель преисподней (хотя черт его знает... ;) ), он имеет в виду, видимо, идентификаторы, используемые для обозначения переменных, то есть обозначения, начинающиеся обязательно с буквы, за которой могут следовать цифры или буквы.  
Однако вычеркивание всех цифр автоматически превращает любое цифро-буквенное сочетание в идентификатор, который может использоваться в качестве имени переменной. Так что спрашивай у своего преподавателя, чем ему не нравится вычеркивание всех цифр - увы, телепатией я не владею :(
 

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

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

вот именно это и нужно, заменить первую цифру в слове на какую нибудь букву, еще должно быть подчеркивание

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

Непонятно. Можно сделать дословно, но это противоречит тому, что писалось раньше. Во что должны превратиться слова 111, B11, 1B1? Что означает "в какую-нибудь букву"? Буква A годится? И что означает "еще должно быть подчеркивание"? Подчеркивание в именах переменных обычно рассматривается просто как буква.

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

@Тролль,

111 - удаляться

B11 - остаются

1B1 - первая цифра заменяется на любую букву,пусть F

при выводе должна подчеркиваться первая буква каждого идентификатора 

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

@Тролль,

111 - удаляться

B11 - остаются

1B1 - первая цифра заменяется на любую букву,пусть F

при выводе должна подчеркиваться первая буква каждого идентификатора 

В идентификаторах подчеркивание - не часть рисунка буквы, а просто специальный символ, считающийся тоже буквой.

#include <stdio.h>#include <string.h>#include <ctype.h>int main(){char str[1000],*pc; int i; gets(str); printf("\n"); pc=strtok(str," ");while(pc){for(i=0;pc[i];i++)if(isalpha(pc[i])||pc[i]=='_'){pc[0]=pc[i];break;}    if(i<strlen(pc))printf("%s ",pc); pc=strtok(0," ");}printf("\n"); getchar(); return 0;}

 

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

  • 2 недели спустя...

Уважаемые! Очень сильно прошу Вас помочь!

Уже схожу с ума с этим заданием :)

Собственно, мне задали декодировать QR Code в .bmp формате , вот как пример QR кода: http://www.omniplanar.com/_upload/CodePics/QR-Code/QR_Code.bmp . 

Как я понял, нужно сначала считать картинку в двумерный массив, не могли бы вы мне помочь сделать это и дополнительно дать небольшие рекомендации (а может и с самим кодом) по дешифровке qr кода? 

С уважением!

Заранее премного благодарен!

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

  • 2 недели спустя...

Доброго времени суток)

очень нужна помощь, тему только начали, сразу дали практическую.
помогите, пожалуйста

Составить программу, в которой

1) организовать ввод квадратной матрицы размера nxn из целых чисел;

2) вычислить сумму положительных элементов;

3) переставить ненулевые элементы второго столбца матрицы в его начало;

4) организовать ввод и вывод матрицы в виде отдельных функций.

Условие : Задание каждого пункта оформляется в виде отельной функции

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

в С++

Это язык, а не среда. C++ меняется, поэтому в разных средах используются разные его версии.

#include<iostream>#include<iomanip>using namespace std;const int nm=20;void input(int a[][nm], int &n){    cout<<"Enter the size of array: "; cin>>n; cout<<endl;    for(int i=0;i<n;i++){        cout<<"Enter "<< n<<" elements of line "<<i+1<<": ";           for(int j=0;j<n;j++)cin>>a[i][j];}}int sumpos(int a[][nm], int n){    int s=0; for(int i=0;i<n;i++)for(int j=0;j<n;j++)s+=a[i][j];    return s;}void tran(int a[][nm], int n, int m){    int i,j; for(i=0,j=0;j<n;i++,j++)i-=!(a[i][m]=a[j][m]);    while(i<n)a[i++][m]=0;}void output(int a[][nm], int n){     for(int i=0;i<n;i++){         for(int j=0;j<n;j++)cout<<setw(6)<<a[i][j]; cout<< endl;}}int main(){int n,s; int a[nm][nm]; input(a,n);cout<<endl<<"sum of positives="<<sumpos(a,n)<<endl<<endl;tran(a,n,1); output(a,n);cout<<"\nPress Enter for exit\n"; cin.get(); cin.get();}
Ссылка на комментарий
Поделиться на другие сайты

 

в С++

Это язык, а не среда. C++ меняется, поэтому в разных средах используются разные его версии.

#include<iostream>#include<iomanip>using namespace std;const int nm=20;void input(int a[][nm], int &n){    cout<<"Enter the size of array: "; cin>>n; cout<<endl;    for(int i=0;i<n;i++){        cout<<"Enter "<< n<<" elements of line "<<i+1<<": ";           for(int j=0;j<n;j++)cin>>a[i][j];}}int sumpos(int a[][nm], int n){    int s=0; for(int i=0;i<n;i++)for(int j=0;j<n;j++)s+=a[i][j];    return s;}void tran(int a[][nm], int n, int m){    int i,j; for(i=0,j=0;j<n;i++,j++)i-=!(a[i][m]=a[j][m]);    while(i<n)a[i++][m]=0;}void output(int a[][nm], int n){     for(int i=0;i<n;i++){         for(int j=0;j<n;j++)cout<<setw(6)<<a[i][j]; cout<< endl;}}int main(){int n,s; int a[nm][nm]; input(a,n);cout<<endl<<"sum of positives="<<sumpos(a,n)<<endl<<endl;tran(a,n,1); output(a,n);cout<<"\nPress Enter for exit\n"; cin.get(); cin.get();}

Спасибо большое)

и спасибо, что поправили, даже стыдно немного стало :blush:

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

Всем доброго времени суток. Возникла проблема со строками. Пытаюсь создать функцию которая будет удалять из строки все символы в заданном промежутке(она на удивление работает). Возник вопрос, когда я запустил ф-цию через отладчик то при создании указателя на новую строку в отладчике у меня появляется сообщение что создан неправильный указатель(как оказалось позже в функции мейн при создании строки тоже появляется такое сообщение), если не трудно подскажите почему указатель неправильный и как это исправить? вот код программы.
PS:В аналогичной функции для числового массива указатель содается правильно.
#include <iostream>
#include <conio.h>
#include <cstring>
#include <Windows.h>

using namespace std;

char *del(char s[],int begin, int end)//функция удаляет из строки символы от бегин до енд
{
int size = strlen(s)+1;//подсчет размера строки + нулевой байт
size-=(end-begin);//вычисление размера для нового массива
char *str = new char;//создание нового массива
int j = 0;//переменная для смещения символов
str[size-1]='\0';//завершение строки нулевым байтом
for(int i(0);i<size;i++)
{
if(i==begin)//если и = бегин то присвоить значение для j разницу между end и begin
j = end - begin;
str=s[i+j];
}
cout<<str<<endl;
delete []s;//удаление старого массива
return str;//возвращение нового массива
}

int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int size = 100;
char *str = new char;// на отладчике появляется сообщение что str - это неправильный указатель, аналогично и в функции дел
cout<<"Enter string:";
cin.getline(str,size);
int begin,end;
cout<<"Enter begin:";
(cin>>begin).get();
cout<<"Enter end:";
cin>>end;
cout<<str<<endl;
str = del(str,begin,end);
delete [] str;
_getch();
return 0;
}

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

Помогите пожалуйста!!!Задание 

Напишите программу,определяющую самое большое число на n-ом уровне непустого дерева Т (корень считать вершиной нулевого уровня).

Спасибо заранее за помощь

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

И это помогите плиз(((

Используя алгоритм поиска в глубину,найдите множество фундаментальных циклов связного неориентированного  графа,заданного списками инциндентности

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

@Ulyashka86,

Напишите программу,определяющую самое большое число на n-ом уровне непустого дерева Т (корень считать вершиной нулевого уровня).
#include <iostream>#include <climits>using namespace std;struct Tree{Tree *L,*R; int m;};int n,s=INT_MIN; Tree *T=0;int ct(Tree *w,int l){  int d=0; if(w->L)d+=ct(w->L,l+1); if(w->R)d+=ct(w->R,l+1);  if(n==l)w->m>s?s=w->m:0,d++; return d;}void al(Tree **w, int p){  Tree* k; *w=new Tree; k=*w; k->m=p; k->L=0;k->R=0;}int main(){al(&T,1); al(&T->L,2); al(&T->R,3); al(&T->L->L,4); al(&T->L->L->R,5);  al(&T->L->L->L,6); al(&T->R->L,7); al(&T->L->R,8);// создали тестовое деревоcout<<"Level: "; cin>>n; ct(T,0);if(s==INT_MIN)cout<<"Level is absent"; else cout<<s;cout<<"\nPress Enter for exit\n"; cin.get(); cin.get();
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Здравствуйте. Есть вопрос по C#.

Допустим у меня имеются 2 массива типа int. Нужно сравнить их значения. Однако для C# массив - ссылочный тип, а потому при обычном сравнении:

int[] a = {1,2,3};int[] b = {1,2,3};if(a == b){    Console.WriteLine("Массивы идентичны");}else{    Console.WriteLine("Массивы различны");}
будет выдаваться ответ, что массивы различны (поскольку здесь будут сравниваться ссылки a и b, а не сами объекты, на которые они ссылаются). Метод Equals делает то же самое. Вручную сравнивать каждый отдельный элемент массивов в одном условии - весьма неудобно. Может быть есть какие-нибудь встроенные методы для сравнения массивов по значению?

Заранее спасибо.

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

Спасибо за помощь :) Я находил кстати упоминание про метод SequenceEqual для массивов на MSDN, но у меня почему-то этот метод был недоступен. По указанной Вами ссылке прошёл, выяснилось, что нужно юзать .NET Framework версию >= 3.5 (а у меня 2.0 было).

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

ВСЕМ привет !!!!!!!!!!

помогите пожалуйста сделать программы на паскале:

 

 

Задача 1.

На сортировочной станции данные по каждому товару содержат следующую информацию: код страны отправителя( строка без пробелов длинной не более 10 символов, начинающаяся с одного и более латинских символов, соответствующих стране), код страны адресата( строка без пробелов длинной не более 10 символов, начинающаяся с одного и более латинских символов, соответствующих стране), код товара( строка без пробелов длинной не более 10 символов, начинающаяся с одного и более  латинских символов, соответствующих наименованию товара), регистрационный номер (семизначное число). Аббревиатурой товара является трехсимвольный код, состоящий из трех заглавных букв - первых букв кода страны отправителя, кода страны адресата и кода товара.

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

На вход программе в первой строке подается аббревиатура не больше 20. Во второй строке находится число N – количество товаров, присутствующих на сортировочной станции. В последующих N строках дана информация о товарах в формате: код страны отправителя, код страны адресата, код товара, разделенные одним пробелом. Все символы записаны заглавными латинскими буквами.

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

 

 

Задача 2.

На некоторой остановке в течение одного часа для каждого пассажирского автобуса фиксируется время прибытия в минутах (целое число от 0 до 60), номер маршрута (целое число), название предприятия (текстовая строка 20 символов). Все автобусы одного маршрута принадлежат одному предприятию; одно предприятие может обслуживать несколько маршрутов. Для каждого маршрута задан плановый интервал движения в минутах (целое число от 5 до 15) – промежуток времени между моментами прихода автобусов данного маршрута. Если автобусы некоторого маршрута допускают интервал движения, превышающий плановый более чем на 2 минуты, то на предприятие начисляется по одному штрафному баллу за каждую минуту.

Напечатать список маршрутов и предприятий, чьи автобусы допустили нарушения, и число штрафных баллов в виде <номер маршрута>,<предприятие>,<число штрафных баллов>.

Исходные данные вводятся в виде:

Число М – число маршрутов, проходящих через данную остановку, а  затем вводится М строк вида <номер маршрута>, <интервал движения>, <название предприятия>. Все номера маршрутов отличны друг от друга.

Затем вводится число N – число прошедших через остановку автобусов, затем вводится  N строк вида <время прибытия>, <номер маршрута>.

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

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

Добрый вечер)

Снова обращаюсь к вам за помощью  :angel_innocent:

Задан текст. Определить, сколько слов заканчивается на заданную букву.

В Dev-C++.

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

merody

#include <iostream>#include <cstdlib>#include <cstring>using namespace std;int main(){char str[1000],*w,c,r[]="\n\t ,.!?\r"; int k=0;cout<<"Enter text:\n"; cin.getline(str,1000);cout<<"Enter letter:\n"; c=cin.get();w=strtok(str,r); while(w){if(w[strlen(w)-1]==c)k++; w=strtok(0,r);}cout<<"words '..."<<c<<"': "; cout<<k<<endl; cin.get();cout<<"Press Enter for exit\n"; cin.get();}

Тут рассчитано на текст с латинскими буквами. С русскими в C++ бывают сложности.

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

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



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